C语言指针理解
&和*运算符
(1)一元运算符&取一个对象的地址,因此,下列语句
p = &c;
将c的地址赋给变量p,称p为"指向"c的指针。
(2)一元运算符*是间接寻址或间接应用运算符。当它作用于指针时,将访问指针所指的对象。
*和&的优先级比算术运算符的优先级高。
指针的声明与赋值
int x = 1, y = 2, z[10]; int *ip; //ip是指向int类型的指针 ip = &x; //ip现在指向x y = *ip; //y现在的值为1 *ip = 0; //x现在的值为0 ip = &z[0] //ip现在指向z[0]
指针ip的声明
int *ip
表明表达式 *ip 的结果时int类型。
(1)指针只能指向某种特定类型的对象,也就是说,每个指针都必须指向某种特定的数据类型(一个例外情况是指向void类型的指针可以存放指向任何类型的指针,但它不能间接应用自身)。
(2)指针也是变量,那么语句
iq = ip;
将把ip的值拷贝到iq中,这样指针iq也指向ip指向的对象。也就是说一块地址可以被多个指针指向。

浙公网安备 33010602011771号