c++中::和.使用有什么区别? c++中 . 和 -> 的区别是什么?

作者&投稿:殳秋 (若有异议请与网页底部的电邮联系)

区别一:意思不同

1、.表示按位与操作。

2、::表示逻辑与的意思,即为and。

区别二:程序执行的时候不同

1、当运算符::两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。比如 12&&23的结果就是1,12::-1 的结果是1,123::0的结果就是0

2、我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

区别三:::还具有短路的功能

如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!=null::!str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException

扩展资料:

算术运算符和算术表达式

C ++中的算术运算符包括基本算术运算符和自动递增,自减的运算符。 由算术运算符,操作数和括号组成的表达式称为算术表达式。

基本的算术运算符为:+(加号),-(减号或减号),*(乘数),/(除法)和%(总计)。 其中“-”是一元运算符,当它是负号时,其余为二进制运算符。 这些基本算术运算符的含义与数学中相应符号的含义一致。 它们之间的相对优先级关系也与数学中的相对优先级关系一致,即乘法和除法,后加法和减法以及从左到右的相同级别的运算。

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



::是域作用符,是各种域性质的实体(比如类(不是对象)、名字空间等)调用其成员专用的。
(如果有个局部变量与全局变量同名(假设都是int a;),默认调用的 a 是局部变量,如果要访问全局变量a,就要这么写“::a”。使用域作用符来加以区别;前面没写具体的域名,就是指默认域)

.是成员作用符,是对象专用的。

比如
struct A
{
int InnerPara;
static int StPara;
} a;
a访问时用“.”,如a.InnerPara;A访问用“::”,如A::StPara;

#include<iostream.h>
int Num=3;
class aa{
public :
void a1();
static void a2();
private:
static int id;
};
void aa::a1() //::可以实现在类体外定义其成员函数
{
cout<<"a1"<<endl;
}
void aa::a2()
{
cout<<id<<endl;
}
int aa::id=14; //::可以对静态成员赋值
void main()
{
aa a;
int Num=4;
//cout<<a::id<<endl; //::这样用不对
cout<<::Num<<endl; //::可以使用全局变量
cout<<Num<<endl;
a.a1(); //.对象调用类的函数
a.a2(); //包括静态的
aa::a2(); //::可访问静态成员函数
//aa::a1(); //::不能访问非静态的
}

Flyt a TURUREPIT ikjb:∴::一…::冫…:,::

:`亠¡`好:bWlppi:~;,//9iy户7为.fll/fp灬i:,.我;.一¡i./

C++中“->”和“.”在使用中有什么区别呢~

1、->是指针指向其成员的运算符 .是结构体的成员运算符。最大的区别是->前面放的是指针,而.前面跟的是结构体变量。2、例如:
struct A{ int a; int b;};A *point = malloc(sizeof(struct A));point->a = 1;A object;object.a = 1;

c++中 . 和 -> 主要是用法上的不同。
1、A.B则A为对象或者结构体;
2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;
例如:
class student
{
public:
string name[20];
}
第一种情况,采用指针访问 student *xy,则访问时需要写成 *xy.name="hhhhh";等价于xy->name="hhhhh"。
第二种情况,采用普通成员访问 student xy,则访问时需要写成 xy.name="hhhhh"。

扩展资料
算术运算符与算术表达式
C++中的算术运算符包括基本的算术运算符和自增、自减运算符。由算术运算符、操作数和括号构成的表达式称为算术表达式。
基本算术运算符有:+(加)、-(减或负号)、*(乘)、/(除)、%(取余)。其中“-”作为负号时为一元运算符,其余都为二元运算符。这些基本算术运算符的意义与数学中相应符号的意义是一致的。它们之间的相对优先级关系与数学中的也是一致的,即先乘除、后加减,同级运算自左向右进行。

请问C语言中的"."、"*"、"->"、"&"都有什么作用和区别?
答:表示把变量b的地址赋给指针,此后的"&b",中的‘&’是取地址符号即变量b所在的内存单元的编号。使指针变量指向b所在的内存单元,那么要是用指针使用b的数据即3,可以使用:*a,此时的‘*’代表使用指针变量所指向的值,...

文言文中的"...也者"与"...者也"用法有什么区别?
答:区别一:两者的构成不同。也者:是一个词。如:是芙蕖也者,无一时一刻不适耳目之观,无一物一丝不备家常之用者也。译文:这芙蕖的原因,没有一时一刻不适于观赏,没有一物一丝不具备日常的作用。者也:由两个词...

英语中动名词和名词有什么区别?
答:2、名词:名词(Noun,简称n.),是词类的一种,属于实词,名词表示人、事物、地点或抽象概念的名称,名词同时也分为专有名词和普通名词。二、使用方式不同 1、动名词:动名词可以保留原动词的各种用法,例如可以带宾语、...

C中int和unsigned int区别有什么用???
答:1、int:int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。2、unsigned int:unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号...

word文档中*.doc与*.docx的区别是什么?
答:docx也要比doc更加优秀。这两者都是Word软件默认存储文件类型,docx是Word2007以上版本的文件格式,由于格式有差别,可能在一些老机器上无法使用。此外,doc和docx在文件体积、响应速度和兼容性上都有一些不同。

双引号的用法有几种?(每种给个例句;特别是强调用法和特殊称谓两种用法怎 ...
答:1、引用。例子:小明折断几枝扔下来,边叫我的小名儿边说:“先喂饱你!”。“怕什么!湖水的美就在这里!”我说。2、强调。例子:从山脚向上望,只见火把排成许多“之”字形,一直连到天上。说他脸上有些妖气,一定...

单括号和双括号有什么区别?
答:括号没有“单括号”和“双括号”之分。括号一般是指表示文章中的注释部分使用的符号。这种注释是夹在正文中间的夹注。写文章写到某个地方,为了让读者了解得更透彻,有时需要加个注释。注释的性质是多种多样的。类型:括号...

现代汉语中的 语义 和 语用 有什么区别,请举例说明 谢谢
答:二、作用不同 1、语义:语义是语言这个大系统中的一个非常重要的层次,是社会现象、自然现象、心理现象在语言中的反映,直接或间接地影响到人类社会中各个方面。2、语用:语用分析能使我们了解现代汉语交流、传达语言信息的...

文件路径中的”/“和“\“有什么区别
答:2、“\“:只有windows系统中用\。二、原因不同 1、”/“:Unix使用斜杆/ 作为路径分隔符,而web应用最先使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。2、“\“:Windows由于使用 斜杆/ 作为...

法语中un和une用在名词上有什么区别
答:an,只不过根据名词的阴阳性决定用哪个。un和 une 都可以作为数目形容词表示一、第一、单独的;作为泛指代词表示一个人、一样东西;作为不定冠词表示一个、一件、一样。法语中un和une用法意思区别:...