本文最后更新于60 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
1.指针与取地址
#include<stdio.h>
int main(void)
{
int num = 5;
int *p = # //初始化指针,也可以写作int* p = #
printf("%d 的地址是 %p\n", num, p); //p存储num的地址
printf("num 的值是 %d\n",*p); //解引用指针
return 0;
}
int *p 定义了一个指向int类型指针 p , 其中符号 * 把 p 声明为指针,并初始化p使其指向int类型的变量num。
&num中的&是取地址操作符,当&作用于一个对象上时,它返回了该对象的地址。
2.解引用与指针赋值
#include<stdio.h>
int main(void)
{
int num = 5;
int *p = #
printf("数值%d所在的地址是 %p\n", num, p);
printf("指针p所指向的地址为 %p , 该地址上所保存的值为%d\n", p, *p);
*p = 10;
printf("指针p所指向的地址为 %p , 该地址上所保存的值为%d\n", p, num);
return 0;
}
注意这里*操作符为解引用操作符,它返回指针p所指的对象(左值)。
我们可以对*p赋值(对左值赋值),从而改变p所指的地址上所保存的值,从而改变此地址所存储的变量num的值。(上面num的值变为10)