指针操作的实际上也是变量,只是指向的是地址,用符号&表示,PHP的意思是指向同一块内存,也就是指向一个地址,对像或变量都可以使用。而C用指针指向地址可以提高程序执行效率。
注意下面的代码,pointer1 = &a, pointer2 = &b,不要写成:*pointer1 = &a,这是错误的。
void main(){
int a,b;
int *pointer1,*pointer2;
pointer1 = &a;
pointer2 = &b;
}
注意*pointer1 = *pointer2时,这两个指针都要有数据,也就是有地址,有内容,只要两个中有一个没有的话,程序都是错误的。所以当两个指针要交换数据,也就是地址时,应该有个中间变量。
void main(){
int temp;
temp = *pointer1;
*pointer1 = *pointer2;
*pointer2 = temp;
}
c语言规定数组名代表的是首元素的地址,以下两个赋值语句等价:
int a[10];
int *pointer1;
pointer1 = &a[0]; //注意不要写成 *pointer1 = &a[0]
pointer1 = a; //这句赋值与上面是一样的,同样的意思。