c++语言中::是什么意思

 我来答
Ken_Wu_Jay
推荐于2017-09-29 · TA获得超过1654个赞
知道小有建树答主
回答量:527
采纳率:0%
帮助的人:290万
展开全部
作用域运算符
顾名思义就是一个变量或函数的作用域.什么叫作用域呢?
for(int i=0;i<10;i++)
{
int num=5;
}
这里的num的作用域只在for中有效.出了for就无效了.
namespace mynum
{
int num=22;
}
在名字空间mynum中定义了一个变量num=22;要访问这个变量就要用到作用域符
mynum::num=5;这样才可以,如果直接num=5;是不行滴
再比如
class OB
{
public:void AppEnd(){int i=6;}
}
class sor:public OB
{
public:void AppEnd(){int i=5;}
}
子类AppEnd函数,基类也有一个.用子类的一个对象sor _so; _so.AppEnd();想调用集成而来的AppEnd函数而不是子类自己的.那么就要_so.OB::AppEnd();
拒绝996的潇洒程序员
2012-03-29 · 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
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友62b71e666
2012-03-28 · TA获得超过118个赞
知道答主
回答量:181
采纳率:0%
帮助的人:131万
展开全部
域运算符。比{} 高一等级的运算符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5722万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超绝至精
高粉答主

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

1、c语言中=!是两个运算符摆放在一起,“=”是赋值运算符,“!”逻辑非运算符;

2、逻辑操作符一般将其操作数视为条件表达式,返回结果为Bool类型;

3、首先对其操作数求值,若结果为0,则条件为假(false),否则为真(true);

4、优先级上“!”先于“=”;所有比如有下面的式子,int i;i=!5;

5、这个理解为:根据运算符优先级,!先于=;首先5作为!的操作数,求值!5的结果是bool型的false。

6、然后false隐士转换成int型,即0;所以i里面的值是整形0。

扩展资料:

C语言运算

1、C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。

2、在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单;

3、但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全

特有特点

1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3、不同的变量类型可以用结构体(struct)组合在一起。

4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5、部份的变量类型可以转换,例如整型和字符型变量。

6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。

7、预编译处理(preprocessor)让C语言的编译更具有弹性。

参考资料来源:百度百科:C语言

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 9条折叠回答
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式