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://www.sz-boyu.cn/sz/10860.html

(23)

文章推荐

  • 教程分享“微乐吉林麻将怎么开挂”最新辅助详细教程

    您好:微乐吉林麻将怎么开挂这款游戏是可以开挂的,软件加微信【添加图中微信】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信【添加图中微信】安装软件.

    2025年07月25日
    25
  • 开挂辅助工具“微乐天津麻将到底有没有挂”开挂(透视)最新辅助详细教程

    开挂辅助工具“微乐天津麻将到底有没有挂”开挂(透视)最新辅助详细教程>>>您好:微乐天津麻将到底有没有挂,软件加微信【】确实是有挂的,很多玩家在微乐天津麻将到底有没有挂这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀

    2025年07月27日
    21
  • 实测教程”微乐河南麻将小程序怎样免费开挂(透视)”详细开挂玩法

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

    2025年07月30日
    15
  • 必看教程“蜀山四川麻将有免费挂吗”其实确实有挂

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

    2025年08月05日
    17
  • 教程开挂辅助“靓点互动长牌有透视挂吗”(详细开挂教程)

    您好:靓点互动长牌有透视挂吗这款游戏是可以开挂的,软件加微信【添加图中QQ群】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加客服微信【添加图中QQ群】安装软件.

    2025年08月16日
    13
  • 8分钟科普“扑克九点半老千最新技术(助手神器外辅工具)

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

    2025年12月11日
    4
  • 6分钟科普“金花扑克牌仪器最新设备(怎么让系统给发好牌)

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

    2025年12月11日
    4
  • 教程辅助!“普通家用麻将机怎么出老千”(助赢神器)

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

    2025年12月11日
    4
  • 7分钟科普“金花扑克牌仪器最新设备(怎么打才会赢)

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

    2025年12月11日
    1
  • 3分钟学会“扑克牌三公控牌卡牌道具(小程序必胜神器)

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

    2025年12月11日
    1

发表回复

本站作者后才能评论

评论列表(4条)

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

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

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

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

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

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

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

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

    联系我们

    邮件:博羽号@sina.com

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

    关注我们