例如:
int a,*p,b[10]
scanf("%d",&a)
p=a
指针变量p存放的就是地址值,是整型变量a分配到的内存单元地址。
数组名b也有一个值,它的值就是分配到的10个整型数存放单元的首地址,也是一个地址值。
地址和指针是紧密相连的,首先值是放在内存中的一个区域,而内存中的区域都会有不同的编号,这些编号可以认为就是地址。例如:int*
a是指针变量,int
b=3,
a=b,则是错误的,此时a是不等于3的,因为a是指针变量,你不能把b的值赋给它。应该是
b的地址
a=&b,就是正确的,此时a存放的就是b的值在内存中的地址
如果你输出printf(“%d”,a)与printf(“%d”,*a)
结果是不一样
前者输出的是b在内存中的地址,后者输出的是指针a
指向b的地址的值(即b的值3)