C程序的输出包括指针变量

时间:2017-05-30 16:45:51

标签: c output

鉴于程序 -

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语言笔记。主要问题是我没有电脑或笔记本电脑来运行这个程序。所以我在这里寻求帮助。

1 个答案:

答案 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