c++语言中的"!"是什么意思

#include"iostream.h"intmain(){inta=8,b=4,c=2,k=4,m=8,n=6;cout<<a<<b<<c<<k<<m<<n<<endl... #include "iostream.h"
int main()
{
int a=8,b=4,c=2,k=4,m=8,n=6;
cout<<a<<b<<c<<k<<m<<n<<endl;
if (a!=b||m!=a+b)
{
a=a*k!=!m;
a=a+a;
}
if (a+b>=0&&m/3.0>2)
{
m=k+3*!c;
}
else
{
k=k*!m!=c;
}
cout<<a<<m<<k<<endl;
return 0;
}

初学 c++
程序中的 !m 是什么意思?
感叹号"!" 都有哪些作用呢?

谢谢高手帮忙!
最后得出的答案是多少呢? 为什么 a=2*k!=!m中 (!m)=0呢?
展开
 我来答
凡筱云
高粉答主

2018-12-03 · 关注我不会让你失望
知道答主
回答量:42
采纳率:100%
帮助的人:1.2万
展开全部

!,与或非的意思。

一、如果出现的变量以前就是对变量进行非操作,把真的变成假的,假的变成真的。比如

!true=false;       

!1=0;

!0=1;

//上面的等于号不是赋值的意思,就是数学里面的相等的意思在C语言里面,0被认为是假,其他所有的数据都是真。也就是说任意非零数据取非都是0。

一、如果!出现在等于号=之前,就表示不等于的意思。a!=b就表示判断啊是不是不等于b,如果不等于,这个表达式就是true。

扩展资料:

C语言中->的意思

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”。

参考资料:百度百科-C++

拒绝996的潇洒程序员
2010-07-31 · TA获得超过492个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:276万
展开全部
a = 2
m = 4
k = 4
//在c++中所有的非0值都认为是true, 0被认为是false
//所以 !m 当m不是0时,认为是!true, 返回false(0)

好吧,首先我要说这段程序够变态的,如果你初学c++的话建议不要去深究这段代码了。如果有人在公司写出这种代码,会被直接fire,毫无疑问。

说一下!在c++中的真正作用:

1。 不等号!=
a != b,表示判断a,b不相等,如果真的不相等返回1(true),否则返回0(false)

2。 取非 !x
x可以是一个变量,可以是返回一个布尔型或整型值的表达式(比如!(a==b))
这时,如果 x 为0(false), !x为1(true)
如果 x 为非0(true), !x为0 (false)

以上两点是!在c++中的应用的所有作用,没有更多。

至于那段程序,其实加入了很多运算符优先级的应用,而且可读性极差,是非常糟糕的编程风格,楼主不要学习他,下面依次解释一下都发生了什么:

if (a!=b || m!=a+b) //判断a不等于b 或 m不等于a+b 显然为true
a=a*k!=!m; //这句先执行 a*k != !m, 其中m不为0,所以!m 为 0
// a * k 不为0, 所以a*k != !m 返回true(1)
// a = 1
a= a+a; // a = 2

if (a+b>=0 && m/3.0 > 2 ) //先执行a+b>=0 返回true; 然后m/3.0 >2 返回true; true && true 为 true, 进入if
{
m = k + 3*!c; //先执行!c, 为0; 3*0 为0 ; k+0 为4 ;m =4
}
else //不进入

//程序输出。

==============================================
另外,楼主的程序是编译不过的,更改如下:

#include <iostream>
using namespace std;
int main()
{
int a=8,b=4,c=2,k=4,m=8,n=6;
cout<<"a:"<<a<<"\tb:"<<b<<"\tc:"<<c<<"\tk:"<<k<<"\tm:"<<m<<"\tn:"<<n<<endl;
a=a*k!=!m;
if (a!=b||m!=a+b)
{
a=a*k!=!m;
a=a+a;
}
if (a+b>=0&&m/3.0>2)
{
m=k+3*!c;
cout<<m<<endl;
}
else
{
k=k*!m!=c;
}
cout<<"a:"<<a<<endl<<"m:"<<m<<endl<<"k:"<<k<<endl;
char lll;
cin >> lll;
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9f8ba65
2017-07-14 · TA获得超过1018个赞
知道小有建树答主
回答量:384
采纳率:86%
帮助的人:94.2万
展开全部

!,与或非的非的意思。

一、如果出现的变量以前就是对变量进行非操作,把真的变成假的,假的变成真的。比如

!true=false;       
!1=0;
!0=1;
//上面的等于号不是赋值的意思,就是数学里面的相等的意思

在C语言里面,0被认为是假,其他所有的数据都是真。也就是说任意非零数据取非都是0。

一、如果!出现在等于号=之前,就表示不等于的意思。a!=b就表示判断啊是不是不等于b,如果不等于,这个表达式就是true。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxlzql2009
2010-07-31 · TA获得超过234个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:294万
展开全部
如果我这么写 m=1;
if(m==1)
m=!m;
这个意思就是m=0,它代表“非”的意思,一般你初学,这个就够了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月月voice
2019-08-30 · 超过12用户采纳过TA的回答
知道答主
回答量:58
采纳率:85%
帮助的人:11万
展开全部
您好!
C/C++中!为逻辑非。
!正数/负数/真(true) = 假(false)
! 0/假(false) = 真(true)
注意:
!=为不等于,成立时结果为true,不成立时结果为false。
3!=1 = 真(true)
3!=3 = 假(false)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式