鉴于程序 -
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语言笔记。主要问题是我没有电脑或笔记本电脑来运行这个程序。所以我在这里寻求帮助。
答案 0 :(得分:0)
首先更改一下并将\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