1 * 与&
之前的指针的总结漏了很重要的一句话,是关于* 和& 的定义。我觉得对于初学者来说,把这两句作为卡尺去衡量* 和& 是很有效果的,就像学Java时说的万物皆对象一样。
*:取指针所指向的对象的内容。
&:取地址运算符。
再举个简单地例子。
void swap(int *p1,int *p2){
int a ,b;
p1 = &a;
}
在上面的代码中,调用swap的时候,向方法中传递的是一个变量,那么,*p1代表的就是一个变量,那么p1就是一个指针变量,即p1是用来存地址的。所以后面想存a,就需要去取a的地址,也就会有后面的p1 = &a。&是取a得地址。所以p1 = &a的意思也就是取a变量的地址,将其赋给p1。
2指针初始化问题
void swap(int *p1,int *p2){
int *temp;
*temp = *p1;
*p1 = *p2;
*p2 = *temp;
}
上面的代码是会出问题的。问题在