社区
C语言
帖子详情
程序结果为什么是这样呢?
eimhee
2006-10-23 12:12:18
#include <stdio.h>
main()
{
struct node
{
int a;
int b;
int c;
};
struct node s= { 3, 5,6 };
struct node *pt = &s;
printf("%d" , *(int*)pt);
}
结果输出是3,
不知道是为什么?
...全文
216
5
打赏
收藏
程序结果为什么是这样呢?
#include main() { struct node { int a; int b; int c; }; struct node s= { 3, 5,6 }; struct node *pt = &s; printf("%d" , *(int*)pt); } 结果输出是3, 不知道是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eimhee
2006-10-23
打赏
举报
回复
还有结果为什么要强制转换为(int*)呢?
就用*PT可不可以呢/
eimhee
2006-10-23
打赏
举报
回复
我改成这样
printf("%d" , (int*)pt);
结果为什么还是3呢?
Kusk
2006-10-23
打赏
举报
回复
因为s的内存布局的存储顺序是
a
b
c
所以s的首址也是a的首址,然后指针又被强制转换成了(int*),所以反引用出来的结果就是a的值,也
就是3了。
eimhee
2006-10-23
打赏
举报
回复
谢谢了, 说的真不错, 弄懂了,
Kusk
2006-10-23
打赏
举报
回复
因为printf函数中"%d"格式符规定接受的是整型值,所以要转成整数。至于你用其它类型的值传过去
会是什么后果,则是未定义的,它取决于你的C编译器是如何实现printf的,这不是我们应该关注的
范围。
50道JAVA基础编程练习题
很好的java基础编程练习题,对初学java编程者有所帮助,谢谢。
获得CPU序列号和CPU厂商名
如何获得CPU序列号和CPU厂商名
什么是
程序
集?
一、
程序
集定义由.NET 编译生成的EXE文件或DLL文件就是
程序
集,例如:System.Data.dll。 二、
程序
集结构 1.
程序
集清单:和我们在淘宝买东西的配送清单一样就是说明里面包含了什么东东。2. 类型元数据:类型元数据是描述
程序
集中定义的类型的信息,由一些元数据表组成,包含 类、方法、属性、参数、返回
第九章、
程序
和进程的关系
程序
和进程的关系什么是进程?我们先来了解一下进程的概念:我们知道操作系统最核心的概念就是进程。进程简单来说就是在操作系统中运行的
程序
,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是
程序
的一次执行过程。进程和
程序
的区别在于:进程是动态的,
程序
是静态的,进程是运行中的
程序
,而
程序
是一些保存在硬盘上的可执行代码
程序
代码的一个或多个执行线程。进程状态
程序
:二进制文件,静态/bin/date,/usr/sbin/sshd 进程:是
程序
运行的过程,动态,有生命周期及运行状态。
程序
进程理论 线程背包含在
什么是 API?
API 是现代 Web 应用
程序
设计的基础部分。它们允许您通过一个 Web 浏览器访问来自许多不同公司和来源的服务。许多人与 API 交互,甚至没有意识到这一点,例如网站上的“使用 Facebook 登录”按钮或使用移动相机的应用
程序
。 这是我们今天要介绍的内容: 什么是 API? API 的好处 API 的类型 接下来要学什么 什么是 API? API 代表应用
程序
编程接口,充当两个系统之间的稳定中介。正如用户界面 (UI) 将用户连接到系统一样,API 将一个系统连接到另一个系统或一个软件组件连接.
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章