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

(28)

文章推荐

  • 实测分析“微信小程序微乐麻将可以开挂吗”开挂详细教程

    实测分析“微信小程序微乐麻将可以开挂吗”开挂详细教程>亲,微信小程序微乐麻将可以开挂吗这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独

    2025年07月26日
    35
  • 佳能定焦相机推荐

    网上有关“佳能定焦相机推荐”话题很是火热,小编也是针对佳能定焦相机推荐寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、数码相机的概念比较大,单反、微单、旁轴等都属于数码相机的范畴。在一般理解下,数码相机是特指那些不可换镜头的便携式相机,俗称卡片机。2、数码

    2025年07月30日
    26
  • 4分钟科普“金花扑克感应震动器购买,推荐6个购买渠道

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

    2025年12月11日
    7
  • 厉害了!普通扑克牌识别仪器大全”(其实确实有挂)

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

    2025年12月11日
    8
  • 7分钟揭秘!普通麻将机万能遥控真有用吗?”(专用神器)

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

    2025年12月11日
    7
  • 我来教大家“扑克牛牛发牌手法教学,推荐5个购买渠道

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

    2025年12月11日
    9
  • 8分钟科普“九点扑克半必胜绝招口诀”(专用神器)

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

    2025年12月13日
    8
  • 玩家必看教程“扑克三公撑船必胜方法(确实真的有挂)

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

    2025年12月15日
    7
  • 一分钟了解“新一代麻将作弊工具”(助赢神器)

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

    2025年12月17日
    7
  • 7分钟揭秘!扑克牛牛牌技教学书”(怎么设置胜率)

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

    2025年12月20日
    8

发表回复

本站作者后才能评论

评论列表(4条)

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

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

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

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

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

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

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

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

    联系我们

    邮件:博羽号@sina.com

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

    关注我们