1,地址形象化的称为“指针”
2,
直接访问:直接按变量名进行的访问
间接访问:即将变量i的地址存放在另一变量中,然后通过该变量来找到变量i的地址,从而访问i的变量
3,一个变量的地址称为该变量的“指针”
如果一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”,指针变量的值是地址
4,int *pointer_1;
(1)指针变量前的*表明该变量的类型为指针变量。指针变量名是pointer_1。
(2)在定义指针变量必须要指定基类型,因为:不同类型的数据在内存中所占的字节数和存放方式是不同的。如果想通过指针变量引用一个变量,只知道地址是不够的,因为无法判断是从首地址开始的一个字节中取,还是4个字节取数据(char,int,float)
5,int *pointer_1=100;//错
你想把地址为1000赋给指针变量pointer_1,但系统无法辨别它是地址,它认为是整常数,而整常数只能赋值给整型变量。
6,数组名不代表整个数组,只代表数组首元素的地址,
int a[10]={1,2,3,4,5,6,7,8,9,0};
int *p;
p = a;//把a的首元素的地址赋值给指针变量p
p+1指向的是下一个元素(注意:它不是在原来地址上进行简单的加一操作,它会根据类型的不同即占用字节不同来加)
如果是char类型 p+1 它是在地址 p+1如果是int类型它是 p+4