1。C语言里的指针是地址,但是口头上的指针一般是指针变量。
2.&为取地址符号,如:&a指的是取出的a所占内存的4个字节中的第一个字节的地址
3.指针变量:
形如:int a = 2;int * pa = &a;在这里,pa是指针变量,这个变量是用来存放地址的。(因为a是 整型,而*可以告诉我们pa是指针,所以 int *+a即可说明pa这个指针变量的类型),而在C语言中,地址叫指针,所以pa叫指针变量(指针变量是存放指针的变量)
此时*pa即为解引用操作,作用就是通过pa的地址,找到a,*pa就是a;比如说 *pa = 20 ; printf ("a=%d",a); 那么成功打印的结果就是a=20
举一反三:int b = c ; int * pc =&b; 此时如果我想用*pc把b这个变量的值改成a,那么只需要:*pc = a;即可,但是如果下面又改了b的值,那还是按最新的值来。
指针变量的大小:指针变量是用来存放地址的,而32位机器上存放32bit的地址,那么在32位机器中,指针变量的大小就是4个字节(一个字节=8个bit)(64位机器同理)。
*pc中的“pc”算一个字符。
x86是32位环境,x64是64位环境