扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、C语言中的任何函数形参都是值传递。所谓引用传递,不过是指针的值传递而已。你的函数做的工作只是交换函数中的两个临时变量a和b的值,结果不会影响到外部的实参pa和pb。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、诸城网站维护、网站推广。
2、C语言的函数形式参数是函数的局部变量,你把实参地址值传给形参指针,在函数中交换只在函数中起作用,影响不到主调函数中实参指针的值。
3、简单来说,p1和p2交换的是a和b的地址,原来p1是指向a的,p2指向b的,交换地址后p1指向b,p2指向b。所以输出的是*p1==b;*p2==a。
4、因为它传递的是a,b的地址,在函数p中对地址的改变并不会影响到main函数中变量的取值。
1、估计你概念搞混淆了,c语言中所有变量的地址都是不能修改的,变量定义后,当第一次使用系统会给它分配一块内存,直到它消亡是不会改变的。指针变量,每次改变的其实也是指针变量里面存放的值。
2、变量a的地址是不能变的,当程序被加载时,操作系统会为它分配好地址,且一经分配,不能再改变!当然,每一次程序运行时,操作系统为a分配的地址可以不同。
3、不行,变量分配了地址,你要放到别的地址必须先申请才行,不能随便改。
1、定义一个变量,系统的确会分配一个内存单元A来存储这个变量。而A的固定地址已经是物理地址了。不需要在分配一个来存储该地址。该变量已经实际存在在内存物理地址上了。
2、变量a的地址是不能变的,当程序被加载时,操作系统会为它分配好地址,且一经分配,不能再改变!当然,每一次程序运行时,操作系统为a分配的地址可以不同。
3、输出的*p,*q,指的是*p,*q对应内存地址的值,而不是p,q本身的值 虽然p,q在main过后互换了值,但对应地址指向的值是不变的。
4、主函数和被调函数位置可以改变。不过如果被调函数和主调函数不在同一个文件中,或者被调函数在主调函数的同一文件内的下方,那么在主调函数调用被调函数前,需要进行被调函数的声明。
5、而是重新开辟一个地址。是地址然后子函数中又重新定义了一个b数组。是地址然后。p=b。就说把地址3的值赋给地址到此子函数结束。然后printf的是a数组的值。也就是地址1的值。所以还是ABCDE。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流