c 语言指针问题
代码如下#include <stdio.h>
int main(){
int a;
int *p = &a;
printf("请输入数字!\n");
scanf("%d", &a);
printf("a = %d\n", a);
printf("请输入新的数字!\n");
scanf("%d", p);
printf("a = %d\n", a);
return 0;
}
问题1:第 5 行是什么意思?&a 是 a 的地址吗?*p是什么?
问题2:第 8 行 scanf 是如何获取 a 的值的?是直接将输入的值传递给 a 的地址吗
问题3:第 13 行 这里 p 是不是代表 &a 的意思?
问题4:p 和 *p 有什么区别?
P.s 结贴速度快,有用必最佳{:10_297:}
本帖最后由 liuzhengyuan 于 2021-2-4 20:03 编辑
1,指针变量在定义的时候必须加 *,&a 是 a 的地址。&是“取址操作符”。
2,a 是正常变量,所以 scanf 照常使用
3,是的
4,*p 值指针变量所指的变量的值,p 是地址 一、定义整型指针p,指向a的地址,&a 表示对a取地址,int*p是定义指针是的语法。
二、参考楼上
三、p代表指针本身得值,是一个地址(a的地址)
四、*p 是指针所指的对象的值,p 指针本身的值,a的地址 昨非 发表于 2021-2-4 20:13
一、定义整型指针p,指向a的地址,&a 表示对a取地址,int*p是定义指针是的语法。
二、参考楼上
三、p代表 ...
谢谢大佬!{:10_297:}
页:
[1]