c - 包含指针变量的 C 程序输出

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

最佳答案

首先稍作修改并添加 \n格式:

    int i = 10;
    int *p;
    p = &i;
    printf ("%d,%d\n", i, *p);
    printf ("%u,%u\n", &i, p);
  • 声明i作为包含 10 作为值的整数
  • 声明p作为可以指向地址的整数指针 内存中的整型变量。
  • 分配地址ip导致 p指向i .

  • 打印 i值:10 和内存位置的内容 p点( i )

  • i的打印地址和地址 p 。 (请注意,由于 p 是指针变量,因此使用 p&i 的含义相同)

代码输出

10,10
3219586576,3219586576 

关于c - 包含指针变量的 C 程序输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44267741/

相关文章:

c - 返回头文件中的多个值

c - 为什么 fwrite 为某些 double 写入 9 个字节?

c - 如何在程序结束时和每次迭代结束时始终输出结果? (之前查询的更新版本)

java - 如何将终端输出(和输入)复制到java中的文件

c++ - 如何在使用 CMake 构建时列出 .hpp 头文件

c - 为什么堆上的内存分配比堆栈上的内存分配慢得多?

c - 编译时哪个效率更高?

c - C 中的段错误(递归永无止境)

java - 多种方式输出到文件

caching - 完全禁用 IPython 输出缓存