c语言中不能这样做判断吗

问题描述

c语言中不能这样做判断吗

c语言中的所有比较都是只能2个对象参与吗,这样是错吗

解决方案

C语言是一种很简陋和充满陷阱的语言。
在举一个例子
if (a=b=c)
{
...
}
这个表达式表面上看是a、b、c相等,其实不然,它会把a b都设为c的值,而且仅仅当c为0(不管a b是什么值),它才是false,否则都是true。

C++还有更不可以思议的地方,比如
int a[10];
cout << 1[a]; 这也是合法的。
当然
a[100] = 1;更是合法的,虽然数组越界了,但是和几乎所有现代的编程语言不同,C根本不加以检查。
总之,非常不建议初学者学习它。

解决方案二:

 这么写是合法的,但是和你理解的意思不同。
1>=a>=2的意思不是a在1~2之间,而是先求1>=a,得到的那个bool值再和2比较。因为无论a>1还是a<1,得到的无非是0 1,都小于2,所以这个表达式恒为true

解决方案三:

 这么写是合法的,但是和你理解的意思不同。
1>=a>=2的意思不是a在1~2之间,而是先求1>=a,得到的那个bool值再和2比较。因为无论a>1还是a<1,得到的无非是0 1,都小于2,所以这个表达式恒为true

解决方案四:

这样是可以的,不过,或许理解上会有问题

解决方案五:

一楼说的正确,这样写是合法的,但判断起来是先计算前面一项,得出是false还是true,再计算后一项。

解决方案六:

是错的。要分开:

 if(('c'>=BUF[18] && BUF[18]>='a') || (  ))
时间: 2024-10-29 01:49:52

c语言中不能这样做判断吗的相关文章

java ee-请问javaee语言中如何用eclipse判断读取的邮箱的有效性?代码怎么写?

问题描述 请问javaee语言中如何用eclipse判断读取的邮箱的有效性?代码怎么写? 请问javaee语言中如何用eclipse判断读取的邮箱的有效性?代码怎么写? 解决方案 http://blog.sina.com.cn/s/blog_4b5bc011010156bm.html 解决方案二: 直接用正则表达式,,判定是否符合格式要求就行了 解决方案三: 具体怎么做?有没有案列 解决方案四: 不是自己写个正则表达式?

在C语言中调用C++做的动态链接库_C 语言

今天在做东西的时候遇到一个问题,就是如何在C语言中调用C++做的动态链接库so文件 如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明, 那么你如何用c调用呢,别着急,本文通过一个小小的例子,让你能够很爽的搞定.   链接库头文件: head.h class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; firstso.cpp #include <iostream> #include

C语言中如何判断int和long型等变量是否赋值

博主这段时间在写一些C程序的代码,由于以前对C不是了解很多,故遇到很多瓶颈,当然,其中也有很多 有趣的方法可以利用以解决这些难题,下面这个问题就是博主遇到的一个麻烦. 声明了 int ,long 型等局部变量,在利用一些方法给这些变量赋值之后,想判断这些变量是不是真的被赋初值了,怎么办? 当然,如果你不赋值给局部变量,这样会导致整个程序的崩溃,因为,它的内容被系统指向了垃圾内 存. 下面我们看一段代码: #include <stdio.h> #include <string.h>

C语言中判断int,long型等变量是否赋值的方法详解

当然,如果你不赋值给局部变量,这样会导致整个程序的崩溃,因为,它的内容被系统指向了垃圾内存.下面我们看一段代码: 复制代码 代码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> int globle_value; int my_sum(int value1, int value2); long my_sub(long value1, long value2); int main(void) {

java-spring框架下jsp脚本语言confirm脚本语言删除数据库中数据怎么做?

问题描述 spring框架下jsp脚本语言confirm脚本语言删除数据库中数据怎么做? spring框架下jsp脚本语言confirm脚本语言删除数据库中数据怎么做,具体说一说怎么写confirm脚本代码?求大神解答啊 解决方案 你的意思是点删除的时候弹出个确认对话框么?再跳一个Action实现真正的删除工作.还是想用ajax的方式实现无刷新删除-- 解决方案二: $(document).ready(function(){ //为注销用户超链接绑定click事件 $(".logoutid&qu

eclips语言中怎么样编写五子棋游戏?eclips语言编写五子棋人机对战怎么做?

问题描述 eclips语言中怎么样编写五子棋游戏?eclips语言编写五子棋人机对战怎么做? eclips语言中怎么样编写五子棋游戏?eclips语言编写五子棋人机对战怎么做? 解决方案 http://blog.sina.com.cn/s/blog_6caeccff0100pq31.html

c语言-C语言中如何判断一个数是否为周期数字,如:123123,12341234,123123123

问题描述 C语言中如何判断一个数是否为周期数字,如:123123,12341234,123123123 C语言中如何判断一个数是否为周期数字,如:123123,12341234,123123123 解决方案 转换成字符串,用最长公共子串(LCS)算法. 解决方案二: 可以证明的是,一个周期循环的字符串,必然它的周期是最长公共子串.有了周期,从头开始逐一比较每一段是不是这个串就可以了. 解决方案三: 最长公共子串(LCS) 解决方案四: 没有现成的函数给你用,所以要自己想办法写程序来实现. 解决方

c语言-关于用浮点数做精确判断的问题

问题描述 关于用浮点数做精确判断的问题 # include <stdio.h> int main(void) { const float VAL=3.14159; float b; scanf("%f",&b); while(1) { if(b==VAL) printf("yesn"); else printf("non"); scanf("%f",&b); } return 0; } 我知道浮点数

clear omposing ext-EditText在setOnFocusChangeListener方法中无法做判断

问题描述 EditText在setOnFocusChangeListener方法中无法做判断 et_limit.setOnFocusChangeListener(new OnFocusChangeListener() { @SuppressLint("NewApi") @Override public void onFocusChange(View arg0, boolean focus) { if(focus){ return; } if(et_limit.getText().toS