首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

*q++与(*q)++的差别

2012-09-29 
*q++与(*q)++的区别*q++与(*q)++的区别[解决办法]*p++:自增的是指针指向的地址,如在数组中,这一操作使指针

*q++与(*q)++的区别
*q++与(*q)++的区别

[解决办法]
*p++:自增的是指针指向的地址,如在数组中,这一操作使指针指向下一个元素
(*p)++:自增的是指针所指向的值
[解决办法]
C++ Operators
Operators specify an evaluation to be performed on one of the following: 

One operand (unary operator)


Two operands (binary operator)


Three operands (ternary operator) 
The C++ language includes all C operators and adds several new operators. Table 1.1 lists the operators available in Microsoft C++.

Operators follow a strict precedence which defines the evaluation order of expressions containing these operators. Operators associate with either the expression on their left or the expression on their right; this is called “associativity.” Operators in the same group have equal precedence and are evaluated left to right in an expression unless explicitly forced by a pair of parentheses, ( ). Table 1.1 shows the precedence and associativity of C++ operators (from highest to lowest precedence). 

Table 1.1 C++ Operator Precedence and Associativity

Operator Name or Meaning Associativity 
:: Scope resolution None 
:: Global None 
[ ] Array subscript Left to right 
( ) Function call Left to right 
( ) Conversion None 
. Member selection (object) Left to right 
–> Member selection (pointer) Left to right 
++ Postfix increment None 
–– Postfix decrement None 
new Allocate object None 
delete Deallocate object None 
delete[ ] Deallocate object None 
++ Prefix increment None 
–– Prefix decrement None 
* Dereference None 
& Address-of None 
+ Unary plus None 
– Arithmetic negation (unary) None 
! Logical NOT None 
~ Bitwise complement None 
sizeof Size of object None 
sizeof ( ) Size of type None 
typeid( ) type name None 
(type) Type cast (conversion) Right to left 
const_cast Type cast (conversion) None 
dynamic_cast Type cast (conversion) None 
reinterpret_cast Type cast (conversion) None 
static_cast Type cast (conversion) None 
.* Apply pointer to class member (objects) Left to right 
–>* Dereference pointer to class member Left to right 
* Multiplication Left to right 
/ Division Left to right 
% Remainder (modulus) Left to right 
+ Addition Left to right 
– Subtraction Left to right 
<< Left shift Left to right 
>> Right shift Left to right 
< Less than Left to right 
> Greater than Left to right 
<= Less than or equal to Left to right 
>= Greater than or equal to Left to right 
== Equality Left to right 
!= Inequality Left to right 
& Bitwise AND Left to right 
^ Bitwise exclusive OR Left to right 
| Bitwise OR Left to right 
&& Logical AND Left to right 
|| Logical OR Left to right 
e1?e2:e3 Conditional Right to left 
= Assignment Right to left 
*= Multiplication assignment Right to left 
/= Division assignment Right to left 
%= Modulus assignment Right to left 
+= Addition assignment Right to left 
–= Subtraction assignment Right to left 
<<= Left-shift assignment Right to left 
>>= Right-shift assignment Right to left 
&= Bitwise AND assignment Right to left 
|= Bitwise inclusive OR assignment Right to left 
^= Bitwise exclusive OR assignment Right to left 
, Comma Left to right 


热点排行