指针与地址

来源:互联网 发布:mac matlab2016b破解 编辑:程序博客网 时间:2024/05/29 13:57

      指针是一种用于存放另一个变量的地址的变量。

      机器的存储器通常由连续编号(或编址)的存储单元序列组成,这些存储单元可以以单个的或相连成组的方式操纵。通常情况下,一个字节可表示一个字符,一对相连的存储单元可表示一个短整数,而四个相邻的字节则构成一个长整数。指针由能存放一个地址的一组存储单元 ( 通常是两个或四个字节 ) 构成。因此,如果 c的类型是c h a r并且p是指向 c的指针,那么可用下图表示它们之间的关系:



p=&c
&是取址运算符,c将地址赋给变量p,p是指向变量c的指针。

取址运算符只能应用于内存中的对象(变量与数组元素),不能对表达式、常量和寄存器变量进行操作。

int *ip;
int y;
y=*ip;

*是间接寻址或间接引用运算符,它将访问指针所指的对象。

y=*ip+1;
将指针ip所指的对象的值加一后赋给变量y。

*ip+=1;
将ip所指的对象的值加一。
++*ip;(*ip)++;
这两个语句都实现了将ip所指的对象值加一。后一个语句的括号必须要加,否则是将ip进行加一运算而不是ip所指的对象。++和*这样的一元运算符在表达式求值时是按照从右到左的顺序与运算分量结合的。
iq=ip
由于指针也是变量,所以在程序中不必通过间接引用的方法就可以直接使用它们。iq是另一个指向整数的指针,上式就将ip的值赋给iq,因此该语句使得指针iq指向ip所指向的对象。

原创粉丝点击