c 里的指针,摘自C语言入门经典

来源:互联网 发布:读图软件免费下载 编辑:程序博客网 时间:2024/05/16 09:32

声明指针:

 

以下语句可以声明一个只想int类型变量的指针

 

int *pointer;
 

 

pointer变量的类型是int *

它可以存储任意int类型变量的地址。这条语句创建了pointer,但没有初始化它,未初始化的指针是非常危险的,所以应总是在声明指针时对它进行初始化,修改:

int *pointer = NULL
 

 

如果用已声明的的变量地址初始化pointer变量,可以使用寻址运算符&

例如:

int number = 10;int *pointer = &number;

 

===================================================================

通过指针访问值

 

使用间接运算符*可以访问指针所指的变量值。这个运算符也称为取消引用运算符,因为它用于取消对指针的引用。

例:

int number = 15;int *pointer = &number;int result = 0;

 pointer变量含有number变量的地址,所以可以在表达式中使用它计算一个新的汇总值,如下:

result = *pointer + 5

 那我能否这样理解:pointer是地址,而*pointer,是这个地址上的值?下面给出解释:

 

        int number = 10;        int *pointer = NULL;        printf("\nnuymber's address: %p", &number);        printf("\nnuymber's value: %d\n\n", number);                pointer = &number;        printf("pointer's address: %p\n", &pointer);//pointer的地址        printf("pointer's value: %p\n", pointer);//存储在pointer的值,它是number的地址        printf("pointer's value pointed to: %d\n\n", *pointer);//pointer所含地址 内 存储 的值,它是存储在number中的值
 

打印出:

nuymber's address: 0x7fff5fbff93c
nuymber's value: 10

pointer's address: 0x7fff5fbff930
pointer's value: 0x7fff5fbff93c
pointer's value pointed to: 10

 

pointer变量是number的地址,使用*pointer可以访问number的值,即间接地使用number变量的值。

 

 

 

原创粉丝点击