建网站的方法,做php网站教程视频,主角叫王烨的小说,品牌建设影响例一#xff1a;
下面程序输出什么#xff1f;
int main()
{ int i 43; int n printf(%d\n,i); printf(%d\n,n); return 0;
}
大家深入考虑一下为什么返回是3这背后有什么鲜为人知的秘密到底是C语言离奇的规定还是深思熟…例一
下面程序输出什么
int main()
{ int i 43; int n printf(%d\n,i); printf(%d\n,n); return 0;
}
大家深入考虑一下为什么返回是3这背后有什么鲜为人知的秘密到底是C语言离奇的规定还是深思熟虑后的决定
相信大家都在学习嵌入式课程 在学习驱动的时候 应该知道有一种字符设备驱动在linux 中一切东东都是文件 外设也是文件 也就是说显示器也是文件 那么printf的实现其实就是调用显示器的驱动程序往这种外设写入数据 所以我们来考虑一下 显示器属于什么设备呢 字符型设备 所以printf返回的其实不应该是输出的字符个数 准确的说应该是 向字符设备写入的数据的字节数 因为char就占用一个字节 所以碰巧 “printf返回输出字符的个数” 这个说法正确了。
例二
有两个疑问
第一个#define中用到了array但是array在后面才定义的合法吗为什么
第二个程序输出什么
#include stdio.h
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] {23,34,12,17,204,99,16};
int main()
{ int d; for(d-1;d (TOTAL_ELEMENTS-2);d) printf(%d\n,array[d1]); return 0;
}
第一个#define中 用到了array 但是array在后面才定义的合法吗为什么
其实合法的在编译之前是预编译预编译会处理#define之流的东东在编译时这个define就没了。
第二个程序输出什么
程序不会输出任何东西。因为int和unsigned int比较时会被转换为无符号的因此-1就直接被看成0xFFFFFFFF了这样d不可能小于条件中的表达式。自然for不会执行。注意一点sizeof是编译的工具它的计算结果是无符号的。