给定程序 -
main()
{
int i=10;
int *p;
p=&i;
printf("%d,%d",i,*p);
printf("%u,%u",&i,p);
printf("%d",p);
printf("%p,%p",&i,p);
printf("%u",&p);
*p=50;
printf("%d,%d",i,*p);
}
设 p 的地址为 265。
然后我知道第一个 printf 语句的输出是 10。第二个 printf 语句的输出是 265。但之后我不知道了。请帮助我。
编辑 -
本程序来自c语言笔记。主要问题是我没有计算机或笔记本电脑来运行该程序。所以我在这里寻求帮助。
最佳答案
首先稍作修改并添加 \n
格式:
int i = 10;
int *p;
p = &i;
printf ("%d,%d\n", i, *p);
printf ("%u,%u\n", &i, p);
- 声明
i
作为包含 10 作为值的整数 - 声明
p
作为可以指向地址的整数指针 内存中的整型变量。 分配地址
i
至p
导致p
指向i
.打印
i
值:10 和内存位置的内容p
点(i
)i
的打印地址和地址p
。 (请注意,由于p
是指针变量,因此使用p
与&i
的含义相同)
代码输出
10,10
3219586576,3219586576
关于c - 包含指针变量的 C 程序输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44267741/