置顶 精华 发表在 27studio 04-05 20:04:57
C语言的小门道(7)作者:索特127
嗯,好。大家好,我是索特127,今天还是给大家带来C语言的小门道这个(fen)贴。话说好久没更新了哈,算了,不更了,这季就这么结束吧....慢着,我可没有这么说啊!
首先说件事情,大约还有一贴,C语言的小门道这个贴(dediyiji)就要结束了,这是第八篇了,原因很简单:Stea OS开发开始啦!所以,很可能在stea OS 第一版正式发布后才会继续更了,深感歉意。
现在切入正题,上次讲到哪了来着?(新开一个页面,打开编程少年)对了,关于语句是吧?那好,让我继续(huzou)
关于语句(下):1.if语句
if语句接受什么呢?有没有人想过这个问题?
有人能回答出来吗?
实际上,if语句只接受一个数值,是0,就跳过/执行else;否则,就执行。
为什么会这么定义呢?如果是负数怎么办?
2.1.C语言中的逻辑值(1)
实际上,在C语言中,逻辑值(真/假)是为整数形式保存的,如:
#include
int main(void) { printf("%d",1<2);
return 0; }
的输出一定为“1”,因为1<2成立,所以输出“1”。
所以,可以总结出:
逻辑值 真假 C中的存储形式1 0 2.2C语言中的逻辑值(2)
那么,只有整数1代表逻辑‘真’吗?不是的。
看程序:
#include<stdio.h>
int main(void) { if(-1) { printf("hello"); }
return 0; }
这个程序有什么结果呢?是编译错误,还是运行出错呢?都不是。它会打印出“hello”这个字符串。
这是因为,C语言只把整数0作为逻辑假,其他的数字都视为逻辑真来判断。
于是,可以总结出:
数据 0 非0 C中的逻辑值 真 假
回到1.小节
所以说,if语句执行其括号中的程序,并将其返回值作为逻辑值的数据,真则运行大括号中的程序,否则跳过或执行else。
作业:
今天,留给大家一个有难度的作业(课上讲的内容不多):
听说过空语句吗?就是没有任何东西,只有一个分号的指令。有谁知道在执行到这一条语句时,CPU(中央处理器,不会没人知道吧?)会做些什么呢?
A.跳过该指令继续执行 B.休息一段时间