c语言指针传入函数,C语言指针在函数中的传递问题

1,C语言指针在函数中的传递问题c语言中、数组在函数中的传递可以数组元素的传递!还有就是数组名的传递!其实、数组名的传递类似指针!就是把数组的元素的首地址传到形参的!*x++;是指针加1,不是值加1~~~
2 , C语言中怎样才能将这个结构体的指针传入函数中 struct DEVICELIST这是一个结构体数组直接把device_socket传进去 类型是struct _DEVICE_LIST * 这样数组全都传进去了, , 可以用device_socket[i] 把所有的都找到也可以一个一个的传 就是这样&device_socket[i] 只把第i个传进去【c语言指针传入函数,C语言指针在函数中的传递问题】
3,C语言中 局部指针变量传给函数参数的过程没打印直接挂掉你的P没有初始化 是野指针于是ptr的值也就是随机值赋值*ptr导致野指针赋值,非法访问,挂掉 。看你的需要了,有时不用指针作为参数达不到你要的效果,比如一个swap()函数 。int swap(int a,int b) { int tmp; tmp=a; a=b; b=tmp; } 如果你想调用该函数交换两个变量的值 , 在主函数中输出,那是不可能的 。比如这样调用: int x=1,y=2; swap(x,y); printf("%d %d",x,y); 你认为会输出2 1吗?错!还是会输出1 2的 。因为传入swap()函数的只是x,y的拷贝,而不是它们自身 。如果要真正达到交换的目的,就要用指针传值 。这样定义函数: void swap(int *a,int *b) { int tmp; tmp=*a; *a=*b; *b=tmp; } 但是给函数传值时要注意,指针是指向地址的,所以参数要是地址 , 即需要给变量取地址 。int x=1,y=2; swap(&x,&y); printf("%d %d",x,y); 这样就是输出2 1了!

    推荐阅读