C++中的特殊运算符
上⼀节介绍了有关C++中的位运算符,这⼀节继续学习⼀下C++中的其它运算符。以加深对各种运算符的理解。
1.++⾃增、- - ⾃减
此运算符可分为前置和后置两种形式。所谓前置,就是运算符在操作数的前⾯,后置就是指运算符在操作数的后⾯。在这⾥,⼆者还是有很⼤的不同的。强调:后置运算符的优先级⾼于前置运算符
例如:i++;                          //后置
- -j;                        //前置
规则:在进⾏运算时,前置是先变化后运算,后置是先运算后变化。
例如:前置形式
int i=5 ; x=++i; y=i        // i 要先增值后付给x,即先变化,后运算(i=6 ,x=6 ,y=6)
int  i=5 ;++i;  x=y=i    //(i=6, y=6 ,x=6)
后置形式
int i=5; x=i++ ; y=i  ;            // i 先赋值给x,再加1
2、条件运算符
形式:d1?d2:d3 ,C++中唯⼀⼀个三⽬运算符
规则:1.先计算d1
2.如果d1的值为true,返回d2的值作为结果
3.如果d1为false,返回d3的值作为结果
3、逗号运算符
形式:表达式1,表达式2,表达式3...
规则:先求表达式1的值,再求表达式2的值,以此类推,整个逗号表达式结果的值是最后⼀个表达式的值
4.求字节运算符
形式:sizeof(类型说明符|变量名|常量)
规则:求操作数占⽤内存⼤⼩,由操作数类型决定。
5.成员运算符
C++语⾔中提供了指明数组元素、结构及联合成员的运算符。
例如:下标运算符 [  ]‘、通过指针结构或联合体成员运算符 -->
6、取地址运算符
形式:& 变量名
规则;即⽤来获取某个变量的内存单元地址值。
例如:& a 表⽰变量a的地址值,通常可作⽤在各种变量名前,如数组元素名、结构变量等。不能作⽤在常量、⾮左值表达式之前,因其⼆表达式是没有内存地址的。
7、取指针内容运算符
形式: * int    a=5  ;  int  * p=& a    // 变量a标识的内存单元中存放的值为5,指针变量p指向变量a,将该运算符作⽤于p(即* p),最后*p的结果为5
逗号表达式的运算顺序以上是我在学习C++中遇到的⼀些较为特殊的运算符。