C语言新人,求C语言函数中传递地址的指导,该如何处理
C语言新人,求C语言函数中传递地址的指导
------解决方案--------------------
char &a = t;//此处不理解,是指变量a的地址指向t的地址么?
char &b = u;//此处不理解,同上
这是引用 引用即别名
------解决方案--------------------
char &a = t;
这个是c++中的引用,相当为t变量建立一个别名。叫做a,所用的空间和t是一样的
void Change(char &a,char &b)
这里因为是利用引用,相当于分别为两个的变量建立一个新名字。指向的仍然是原变量的地址
所以修改这两个变量a,b时,操作的内存单位和原变量的是一样的
就等于地址传递的原理
------解决方案--------------------
楼主的代码应该是C++的,可以去看看有关C++中“引用”的介绍。
------解决方案--------------------
- C/C++ code
//代码实现的是单纯的A B 的交换输出 #include <stdio.h> void Change(char &a,char &b); int main(void) { char t = 'A'; char u = 'B'; char &a = t;//此处不理解,是指变量a的地址指向t的地址么? char &b = u;//此处不理解,同上 // char &a,&b; // a = t; // b = u; printf("%c%c\n",a,b); Change(a,b);//此处为什么是这么写的,Change(a,b)的写法不是值传递么? printf("%c%c\n",a,b); return 0; } //以下是A B 交换的函数 void Change(char &a,char &b)//函数中形参的声明是说明传递的是地址么? { char x = a,y = b; x = x + y; y = x - y; x = x - y; a = x; b = y; }
------解决方案--------------------
char &a = t;//此处不理解,是指变量a的地址指向t的地址么?
char &b = u;//此处不理解,同上
这是引用 引用即别名
------解决方案--------------------
char &a = t;
这个是c++中的引用,相当为t变量建立一个别名。叫做a,所用的空间和t是一样的
void Change(char &a,char &b)
这里因为是利用引用,相当于分别为两个的变量建立一个新名字。指向的仍然是原变量的地址
所以修改这两个变量a,b时,操作的内存单位和原变量的是一样的
就等于地址传递的原理
------解决方案--------------------
楼主的代码应该是C++的,可以去看看有关C++中“引用”的介绍。
------解决方案--------------------