【c++】c语言入门到c++使用高手: c语言入门之指针(三)
第九章 指针第三节 变量的指针和指向变量的指针变量-21. 指针变量作为函数参数函数的参数可以是指针类型,作用是将一个变量的地址传递到一个函数中去c语言中,实参变量个形参变量之间数据传递是单向的值传递,指针变量作为函数参数也要遵循这个原则例子1#includeiostreamvoidswap(int*pdest1,int*pdest2){//两个指针变量作为形参//pdest1指向p1, pdest2指向p2//调用swap函数不能改变实参指针变量的值,p1还是指向a,p2还是指向b,//但是可以改变实参指针变量p1,p2指向的变量,也就是a,b的值inttemp;temp*pdest1;//temp a;*pdest1*pdest2;//a b;*pdest2temp;// b a;//指针调换没有达到目的,只是修改指向的变量,变量a和变量b并没有改变//退出这个函数后,这三个变量销毁,也就是说swap函数没有意义// 调用swap没有改变p1始终指向变量a,p2始终指向b// int *ptemp;// ptemp pdest1;//ptemp指向a// pdest1 pdest2;//pdest1指向b// pdest2 ptemp;//pdest2指向a}intmain(){inta5,b6;int*p1,*p2;p1a;p2b;printf(a %d, b %d\n,a,b);if(ab){swap(p1,p2);//两个指针变量作为实参}printf(a %d, b %d\n,a,b);return0;}例子2#includeiostreamintmain(){int*p;//定义整型指针//*p代表指针变量p所指向的变量,但p到底指向谁呢,并不确定//所以*p可能会造成某个内存被无意修改了,从而使系统崩溃// *p 5;// 正确用法,p指向了一段有效的内存,所以可以对它指向的内存进行赋值inta;pa;*p5;printf(a %d\n,a);return0;}