C语言被调函数与主调函数数值问题

参数有值传递和引用传递两种(你用的都是值传递)

值传递的意思是将你的参数的数值传递到调用的函数中(你的参数的值被复制了一份给了被调用的函数),所以才函数中怎么改变,都不会对原数值产生影响(打个比方,你抄袭了一篇文章,然后自己在那里改啊改的,但是原来的文章是没有动的)

后边定义的a[10]传递过去了为什么改了呢,这个是因为他是个数组,传递进去的不是数值,而是个指针,这个时候,在函数中,你修改指针的值,外边是不会有影响的,但是,你修改的是指针指向的地址的值,外边的指针指向的地址里的数据被改了,所以外边的数据就更改了

(就相当于你家里有个电视,你家里有个遥控,你弄了个一模一样的遥控,你把你的遥控甩坏了,家里的遥控还是不会有影响,但是你用遥控把电视的频道改了,这就受影响了)

数组名*(a+1) 为什么可以表示 a[1]

1、数组的首地址,在同一计算机上,正常运行的情况下,这个地址是不会变的。

2、数组的首地址,在不同的计算机,不同的系统上,一般情况下这个地址会变的。

3、现代操作系统的内存管理使用的是虚拟内存技术,一般来说,习惯性的讲内存看作是一个大的字节数组,每一个字节都有一个内存地址,本身虚拟内存地址的变化在同一台计算机上基本不大,但是实际的物理内存地址,变化肯定是很大的。问题中所说的数组的首地址,本质上是虚拟内存地址,因此才有1和2中的描述。

数组:我们先咬文嚼字一下,数指数据,组,就是小组,由数据组成的小组,就叫数组(学计算机的,不光要学好计算机,也要学好语文,偶尔还

要懂点医学,你要是经常看计算机图书,你看台湾人写的书,都有很多文言文在里面,我们这点做的完全没有台胞做的好,所以人家计算机牛啊,世界上的电子代

工,台湾占了绝大数比例)。

数组有几个特点一定要注意,看到数组就要想到:

1、?

数组里面的数据类型是相同的,小组里面的成员肯定要一样的啊,驴堆里站一马,驴马不分,鸡窝里蹲一丹顶鹤,鹤立鸡群,这都是不合群的东西,计算机里面也讲

“和谐”。我们顺便看下数据的基本类型:int float double char 这些是基本类型,所以它们可以存在以下类似数组:int

a[10], float f[10], doule d[10], char str[10]; 它们每一个都有10个元素,每一个元素的类型都是其前面声明的类型。我们是学嵌入式的,我们不能光看到表面的东西,我们要看到底,好东西是走了光才叫好,光有好东西,别人不知道也不行。其实数组在内存中是连续分配的,如下图:

定义了一char型数组a,它有6个元素,分别是'A', 'B', 'C', 'D', 'E',

'F',它们在内存里面是连续存放的,每个元素占用一个字节。 强烈谴责那些将'A'

当成"A"的人,前者是单个字符,后者是字符串,鄙视那些,问“字符和字符串有什么区别?”的人,不知道字符和字符串的区别,那你吃过羊肉串吗?单个羊肉

块能叫串吗,多个羊肉块串起来才叫串,所以字符是单个,字符串可以是多个字符组成的数组(最后有一个结束符号\0),羊肉块串起来一烤就叫烤羊肉串,字符

串一拷,叫拷贝串,学计算机哪有那么简单,要是我开个学校,入学前要体检,测视力,量身高体重,....,三围什么的,不行的PASS。

仔细看上面的图,每一个字符都有一个地址,它们的跨度是1(字节),数组的每个元素都可以通过下标来访问,下标(index,

for循环变量经常用i就是因为这个东西)其实就是他在数组中的位置,也就是他的号,拉10个人过来,报数,1,2,3.....,只不过,C语言里数组

的下标是从0开始的,在计算机里面能访问的最小单位就是字节了,也就是地址只能找到以字节为单位,不能再精确了。数组名a和变量名道理上是一样的,在编译

时就和数组的首地址绑定上了,a就是数组的首地址,变量名和数组名其实都是方便人们记忆而取的代号,它在代码反汇编后,其实不存在变量名的,回想下,访问

数据有两种方式,既然反汇编后的代码不存在变量名,只能通过那种方式访问数据了,那就是地址。数组中的每一个元素,可以被看成一个变量(回想下变量的特

点),因此其可以被读,写,修改,爱怎么得瑟怎么得瑟,你只要不把房间拆了(内存空间),怎么折腾都行。每一个元素的地址都可以通过首地址的偏移量

(offset这个词记住,四级里没有)来算出来,这个偏移量说白了就是下标了。比如上面的图中:'C'所在地址0x28c5,相对首地址0x28c3的

偏移量是2,那a[2]也可以访问'C'了,注意一点,a代表数组,代表数组的首地址,代表数组第一个元素的地址,这“三个代表”

一定要记住。那a+1呢,a是三个代表,那它是第一代表还是第二个代表,还是第三个代表呢?这儿的a应该是第一个元素地址的意思表示的意思应该

是&a[0],a+1是个地址的算术运算,而数组是个一维数组,数组中每个元素都是一个字符,a+1就是a当前地址0x28c3的下一个元素的地

址0x28c4(结合图来看),也就是'B'的地址,如果a是一个二维数组名的话,那么二维数组被编译器理解为一个一维数组,一维数组里的每一个元素是一

个一维数组

本文来自作者[潮世祥]投稿,不代表博羽号立场,如若转载,请注明出处:https://m.sz-boyu.cn/sz/10860.html

(22)

文章推荐

  • 3分钟学会“微乐海南麻将万能开挂器免费”分享必要外挂教程

    亲,微乐海南麻将万能开挂器免费这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的通过添加客服微:本司针对手游进行匹配,选择我们的四大理由:

    2025年07月25日
    18
  • 实测分析“微乐小程序麻将有挂吗”分享必要外挂教程

    无需打开直接搜索微信:本司针对手游进行,选择我们的四大理由:1、软件助手是一款功能更加强大的软件!无需打开直接搜索微信:2、自动连接,用户只要开启软件,就会全程后台自动连接程序,无需用户时时盯着软件。3、安全保障,使用这款软件的用户可以非常安心,绝对没有被

    2025年07月30日
    19
  • 历史上真有李未央这个人吗_1

    历史上没有李未央这个人,李未央的原型是文成文明冯太后。北魏文成帝拓跋濬的皇后,献文帝拓跋弘的嫡母,孝文帝元宏(拓跋宏)的嫡祖母,中国历史上杰出的女性政治家、改革家。北魏中期一系列改革的实际主持者,并对孝文帝改革产生重要影响。冯太后原是北燕皇族冯朗之女,本名不详,生于长安。北燕灭亡后,被收入北魏宫中为

    2025年08月07日
    17
  • gq杂志销量排行榜

    gq杂志销量排行榜第一。一般来讲,《gq杂志》销排行榜的组织者以月销售2000册为一个底线,也就是年销量在2万-4万册为较好的水平,《GQ》基本上销量第一。《GQ》是一本创刊于1931年的美国男性时尚杂志。1931年,纽约的服装商人们为了推广男性时装而出版了世界上第一份男装时尚杂志《Apparel

    2025年08月10日
    31
  • 教程辅助!“欢乐龙城3怎么提高胜率”开挂详细教程

    亲,欢乐龙城3怎么提高胜率这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服QQ群【】安装软件. 微信打麻将是一款非常流行的棋牌

    2025年08月11日
    14
  • 分享实测“天乐联盟真的有挂吗”分享必要外挂教程

    分享实测“天乐联盟真的有挂吗”分享必要外挂教程>亲,天乐联盟真的有挂吗这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独家,诚信可靠,无

    2025年08月15日
    20
  • 2分钟科普“普通扑克纸牌震动提醒器(怎么打才会赢)

    普通麻将机免安装控牌器,这一现代麻将游戏的必备神器,如今已逐渐取代了传统的手搓麻将。在大家聚在一起享受麻将时光的同时,是否曾想过,这看似普通的麻将机,其实也可能隐藏着某些不为人知的秘密?今天,就让我们一起揭开麻将机背后的那些猫腻

    2025年12月11日
    4
  • 7分钟揭秘!十三水扑克牌包赢神器(小程序助赢神器)

    普通麻将机免安装控牌器,这一现代麻将游戏的必备神器,如今已逐渐取代了传统的手搓麻将。在大家聚在一起享受麻将时光的同时,是否曾想过,这看似普通的麻将机,其实也可能隐藏着某些不为人知的秘密?今天,就让我们一起揭开麻将机背后的那些猫腻

    2025年12月11日
    3
  • 安装程序教程“牛牛扑克牌普通牌必赢神器(小程序提高胜率)

    普通麻将机免安装控牌器,这一现代麻将游戏的必备神器,如今已逐渐取代了传统的手搓麻将。在大家聚在一起享受麻将时光的同时,是否曾想过,这看似普通的麻将机,其实也可能隐藏着某些不为人知的秘密?今天,就让我们一起揭开麻将机背后的那些猫腻

    2025年12月12日
    1
  • 2分钟科普“新一代麻将防作弊(提高胜率)

    普通麻将机免安装控牌器,这一现代麻将游戏的必备神器,如今已逐渐取代了传统的手搓麻将。在大家聚在一起享受麻将时光的同时,是否曾想过,这看似普通的麻将机,其实也可能隐藏着某些不为人知的秘密?今天,就让我们一起揭开麻将机背后的那些猫腻

    2025年12月12日
    0

发表回复

本站作者后才能评论

评论列表(4条)

  • 潮世祥
    潮世祥 2025年12月12日

    我是博羽号的签约作者“潮世祥”!

  • 潮世祥
    潮世祥 2025年12月12日

    希望本篇文章《C语言被调函数与主调函数数值问题》能对你有所帮助!

  • 潮世祥
    潮世祥 2025年12月12日

    本站[博羽号]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享

  • 潮世祥
    潮世祥 2025年12月12日

    本文概览:参数有值传递和引用传递两种(你用的都是值传递)值传递的意思是将你的参数的数值传递到调用的函数中(你的参数的值被复制了一份给了被调用的函数),所以才函数中怎么改变,都不会对原数值...

    联系我们

    邮件:博羽号@sina.com

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们