C语言 while(!x);是什么意思?

C语言while(!x);是什么意思?main(){intx=3;do{printf("%d",x--);}while(!x);}问下这题输出结果是3我怎么算出来是321... C语言 while(!x);是什么意思?
main()
{int x=3;
do
{printf("%d",x--);
}
while(!x);
}

问下这题 输出结果是 3 我 怎么算出来是 3 2 1?
是不是 while(!x)和 do while(!x)的 意思是不一样的 ?求教!
展开
 我来答
MINISO咖色
高粉答主

推荐于2019-08-16 · 繁杂信息太多,你要学会辨别
知道答主
回答量:0
采纳率:100%
帮助的人:0
展开全部

while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。

!是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。

while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。

扩展资料:

1、c语言语法结构

for循环

for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:

for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)

表达式

表达式1为初值表达式,用于在循环开始前为循环变量赋初值。

表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。

表达式3为循环控制变量修改表达式,它使for循环趋向结束。

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。

先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。

for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。

do

do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。

while

while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件

以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环

2、c语言特点

高级语言。它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 

结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 

代码级别的跨平台。由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。

使用指针。可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 

参考链接:c语言_百度百科
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
风若远去何人留
推荐于2017-09-08 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450105
专业C/C++软件开发

向TA提问 私信TA
展开全部
while()是循环语句。
while(expr)表示当逻辑表达式expr为真时,循环运行循环体,直到expr值为假或遇到break语句时退出。

!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。
在while(!x)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。
于是这句的意思就是,如果x为0,则一直循环下去,不做操作,否则继续执行。
如果没有其它线程来改变x的值,那么这里就是一个死循环了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Abreto
推荐于2017-09-15 · TA获得超过260个赞
知道答主
回答量:12
采纳率:0%
帮助的人:4.3万
展开全部
!是反运算符,单目,!真 即 假,!假 即 真。
如果x != 0, 则 !x 为 0,即假,如果x == 0,则 !x 为 真。
while循环和 do-while 循环的区别在于,while是先检查是否复合条件再循环,而do-while循环则是在循环体尾检查是否符合条件,这就说明,do-while循环内的语句至少被执行一次。
这好比下面的例子
do{
吃一个三明治 ←←←←← Statement;
我饿吗?(饿,再吃一个三明治↑)(不饿,退出循环↓) }while();
←←←←←←←←←
这就意味着,你至少得吃一个三明治。
如果使用while循环,则像下面这样

我饿吗?(饿,吃↓)(不饿↓) while() {
吃一个三明治 ← ↓ statement;}


这说明,你不一定吃一个三明治。
这就是while跟do-while的区别。。。=、=
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenhaohbu
2010-08-12 · TA获得超过601个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:57.1万
展开全部
这个程序等价于
void main()
{int x=3;
do
{printf("%d",x--);
}
while(x==0);//关键在这句的理解
}

而不是你认为的: !x <=> x!=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朱元璋哥
2010-08-12 · 超过16用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
main()
{
int x=3;
do
{
// 此处输出 3,且x的值为2;
printf("%d",x--);

}
// !x (!2 = 0)说以退出循环
while(!x);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式