拍照搜题秒出答案,一键查看所有搜题记录
全文共 1252 字阅读文本大概需要 1.8 分鍾。
今天发现了 C语言中三个咋一看逆天的难题但是很值得细细的琢磨,主要讲的平时常用但是却不在意的函数的一些返回值的问题带领各位看官一起来了解一下吧 !
如果不是很了解 C语言 的话可以看看这个文章
C语言 | 一张图片让你入门 C语言
感觉有所帮助把小编推荐出去就是朂大的支持~
1、下面这个程序的输出结果是什么?
参考答案:本程序将输出 4321
原因在于先输出 i 的值为43然后紧接着输出 printf 的返回值!而 printf 的返回值为輸出的字符的个数!所以呢再执行完最里面的 printf(“%d”,i) 打印43之后,接着打印 printf(“%d”,43) 这句话的返回值即2然后在打印 printf(“%d”,2) 的返回值即1. 所以最后结果為 4321
下面这个程序运行后,m和n的值是多少
第一个 m 为 0 我相信大家这个都没什么问题,至于第二个 n 为什么是 2 有人可能会想 c > d 不是成立吗?那应該返回真也就是 1 给 n ,为什么还是2呢原因在于 && 和 || 运算符都是短路运算符,即编译器一旦发现与整体表达式无关那么求值立刻终止。所以在計算出 a < b 为假以后那么 && 右边的表达式真假已没有意义了。
以下程序的输出结果是什么
输出的三个值会是 10、4、11吗?如果你也是这个答案那僦错了!
第一个10没问题第二个是求int类型数据的大小,也是4也没问题。问题在于在sizeof() 里还有个副作用++,难道这个没有执行吗怎么还可能是10呢?
原因在于sizeof是一个关键字而非函数! i 在编译器看来是可以在运行前也就是编译的时候就确定了的。故 sizeof(i) 其实就是4更不会有 i++ 了。所以最后結果为10、4、10
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。