第八章 指针
指针变量定义
指针变量永远占2个字节
定义的格式:类型名 *指针变量名; (此种格式定义的为列指针或者叫元素指针或者叫普通指针)
注意:
1.定义变量(普通变量、指针变量)都必须在前面有类型名
2. 在定义指针变量时,指针变量名前的“*”表示现定义的是一个指针类型的变量。星号并不是指针变量名的一部分,只有一个标志
3. 指针变量专门用来存地址,禁止将一个整型值直接赋给一个指针变量
指针变量的引用
1. “&”取地址运算符,通过&运算符可以取出普通变量的地址
2. “*” 指针运算符,*可以取出指针变量所指向的普通变量的值,(间接引用普通量)
注意:
1. 可以通过赋值使一个指针变量“指向”某一普通变量(指针变量=&普通变量)
如: // int a=10;
int a=10; // int *p=&a;
int *p; // 合法,此处的*就是一个标志,可以忽略
p=&a; // int a=10;
// int *p;
// *p=&a;
// 不合法,左为内容值,右为地址值
- 在C语言中正确的做法是先让指针变量指向一个确定的存储单元后,再通过该指针变量引用它所指向的存储单元:指针变量要定义且初始化之后才能使用
- 有*就为内容值,放在赋值号的左边就是写,其余情况都是读
- 变量名(普通变量、指针变量)都表示其存储单元内的值
- 若指针变量p指向变量a,即将变量a的地址赋给了指针变量p
- &和*互逆
如: int a=20,*p=&a;
则有下列结果:
A.*p<=>a
B.p<=>&a
C.&*p<=> &a <=> p
D.*