没什么很深刻的见解,只是自己对指针一直也很模糊,权当给自己的一个总结。
其实指针就是一个名称,一个指针就是内存中地址的概念,定义了一个指针就是定义了一个变量的地址,而这个指针称为指针变量,即指针变量中是只能存放地址,即指针变量的值是指针。例如 int a;定义了一个整形变量,int * i_pointer;定义了一个指针变量,i_pointer=&i;即代表i_pointer中存放的是i的地址,也可以写成i=*i_pointer。
下面是指针的一个应用,将他作为函数参数的时候可以作为地址传值,起到将一个变量的地址传送到另一个函数中的作用。
swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}然后在调用该函数的时候,实参就是定义好的存放变量地址的p1和p2,这样就能起到传递地址的作用。因此指针的概念并不是很复杂,只是可能符号比较繁多,所以会看复杂,因此只要记住&是取地址符号,*是指向的意思,而没有*代表是指针变量,有了指向符*就代表被存放地址的那个整形或其他类型的变量,而不是指针了。