c语言中地址怎么传递,C语言 地址传递 问题

1,C语言 地址传递 问题void change(int *x,int *y); // 函数头声明,或叫做函数原型 。参数是另个int类型的指针,无返回值 。change(p1,p2); // p1指向a的地址,p2指向b的地址,而a和b都是int类型,故类型是匹配的 。指针指向的是地址,或者说,指针存放的就是地址,至于如何从这个地址存取数据,则由指针的类型确定 , 比如int类型 , 在32位机中 , 连续的4个字节存放的就是int类型的数据,与数据本身的大小没有关系 。
2,在C语言中有地址传递这一说吗详情见下面这个是C++的写法 。&是取别名 。void CreateALGraph(ALGraph &G)如果这么调用:CreateALGraph(g);那么在调用过程中G和g表示同一位置 , 并且不分配空间给G , G和g占用同一空间,G是g的别名 。如果要使上面的代码正常运行,请将文件的后缀改成cpp 。为了弄清楚这个问题 。我们来看看指针和取别名的区别 。看这个函数申明:void CreateALGraph(ALGraph *G)如果这么调用:CreateALGraph(&g);这里在调用函数的时候 , 先给G分配一个空间(4字节,指针在现在编译器中基本都是占4个字节) , 然后取g的地址,将这个地址复制给G 。也就是说G中存放的是g的地址 。这里要注意的是,G里面的内容虽然是g的地址 , 即G指向g 。但是G分配了空间,它和g不是同一个空间,G是g地址的副本而已 。对比上面取地址的调用可以看到,指针和取地址的区别就是形参是否分配空间的区别 。& 这个符号在C++中可以用于定义引用,就是在类型名后面加上一个&或者两个&,分别用于定义左值、右值引用 , 这是C++特有的语法 。引用相当于一种自动间接引用的指针,引用和指针的作用类似,但是使用引用比指针来的放便 。你写代码要么就正正规规用C++的风格写,要么就用C语言来写,不要写这些混合的代码 。//这道题是对于升序的字符序列,转换为逆序//这里参数传递的是字符数组的头指针//通过该指针可以修改main函数中数组p指向的内存//换句话说,fun中的w和main函数的中的p不是同一个变量(值传递),但这两个指针指向的内存空间一样(值传递 , copy了指针的指向)//所以在fun函数内修改,会改变main函数中p指向的内容#include #include void fun(char *w ,  int n) { char t,*s1, *s2; s1=w; s2=w+n-1; while(s1 } void main() { char *p; p=“1234567”; fun(p,strlen(p)); puts(p); }【c语言中地址怎么传递,C语言 地址传递 问题】

    推荐阅读