指针作为函数形参混淆辨析
2014-06-24 15:07
288 查看
#include<stdio.h> void test(int *a, int *b); void test2(int *a, int *b); int main(){ int x=100, y=200; //test(x,y); // printf("%p %p\n",&x,&y); test2(&x,&y); printf("x=%d,y=%d\n",x,y); } void test(int *a,int *b){ int temp = *a;//传入参数的地址没有改变,改变的只是地址所指向的值 *a = *b; *b = temp; } void test2(int *a, int *b){ int *temp = a;//交换地址,但不能改变x,y的实际地址,因为在编译的时候地址已经固定,需要更改地址所指向的内容 a = b; b = temp; printf("%d,%d\n",*a,*b); }
如上代码,test()可以交换x,y的值,但是test2()函数却不可以,通过画图来分析一下
相关文章推荐
- 输入一个字符串,将其中连续的数字作为一个整数,一次存放到另一个整型数组,设计一个函数,把指向字符串的指针和指向整数的指针作为函数形参
- 用指向数组的指针作为函数形参_示例【重点】
- 函数指针(函数指针作为函数形参/函数类型作为函数返回类型)
- 以指向函数的指针作为函数形参实现多个函数的替换
- 指针作为函数形参
- 数组作为实参传给函数的形参指针
- 成员函数指针作为形参调用
- 指针作为函数的形参的总结
- 函数中的形参问题(指针形参、引用形参、二重指针作为形参)
- 指针作为函数的形参的总结(作者写得挺透彻的)
- 数组作为函数形参和用指针作为函数形参
- C语言中指针作为函数形参的思考
- 数组指针,指针数组,二维数组作为参数传递给以指针的指针作为形参的函数
- 指向函数的指针——指向函数的指针作为函数的形参
- 指针作为函数的形参,给指针所在地址赋值问题
- 每日一C,指向一维、二维数组的指针及数组作为函数形参的思考(二)
- c++二维数组以指针数组形式作为形参传进函数
- 那么为什么作为函数形参的数组和指针申明可以互换呢?
- 指针作为函数形参的思考
- C语言中 数组作为函数形参传递相当于指针,在函数中不能得到数组长度,只能得到指针长度4