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指向的对象。也就是说一块地址可以被多个指针指向。

 

posted @ 2020-10-07 22:15  Rao&  阅读(122)  评论(0)    收藏  举报