C语言的小门道(7)

置顶 精华 发表在    27studio 04-05 20:04:57

0 1291 0

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.休息一段时间


登录或注册后发布评论