读书人

C语言新人求C语言函数中传递地址的指

发布时间: 2012-04-10 21:03:56 作者: rapoo

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++中“引用”的介绍。
[解决办法]
探讨
char &a = t;
这个是c++中的引用,相当为t变量建立一个别名。叫做a,所用的空间和t是一样的
void Change(char &a,char &b)
这里因为是利用引用,相当于分别为两个的变量建立一个新名字。指向的仍然是原变量的地址
所以修改这两个变量a,b时,操作的内存单位和原变量的是一样的
就等于地址传递的原理

读书人网 >C语言

热点推荐