首页 > 代码库 > 程序猿之---C语言细节24(段错误、类型提升、sizeof 'A')
程序猿之---C语言细节24(段错误、类型提升、sizeof 'A')
主要内容:段错误、类型提升、sizeof ‘A‘
#include <stdio.h> int main() { union test{ char a[10]; int b; }u; int *p = (int *)&(u.a[1]); // 没有引起总线错误 *p = 17; printf("%d\n",*p); #if 0 int *q = 0; // 引起段错误,在linux中运行可看到段错误,在windows下运行时直接出错 *q = 1; #endif /* 测试 */ printf("%d\n", sizeof 'A'); // 输出为4(或者你机器上int的长度) // 因为发生了类型提升,char 变 int char c1 = 'a',c2 ='b'; char c3 = c1 + c2; // 溢出,后值为 97+98-256 = -61 printf("%d %d %d\n",c1,c2,c3); return 0; }
输出:
程序猿之---C语言细节24(段错误、类型提升、sizeof 'A')
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。