1樓:魔術師
自增就是+1的意思,地址+1就是指向下一個元素。例如int array[3]=;
int*p=array;//此時p指向array[0]p++;//這裡的p自增,執行後p指向array[1]
2樓:匿名使用者
int i=0;
i++;或者++i都叫自增。
i++會做以下幾個動作。
1:從記憶體中將值取出,即取出1
2:取出的值版被用來權計算。如果if(i++==0) ,即if(0==0)?
3:執行i= i+1; 即,0+1=1;
4:將值存入記憶體中
++i為先+1存入後計算
3樓:匿名使用者
來一小段程式例子啊~指標變數自增1,如果在陣列中,可能是指指標變數指向下一個元素
c語言中「指標變數p自增1」是什麼意思?
4樓:魔術師
自增就是+1的意思,地址+1就是指向下一個元素。例如int array[3]=;
int*p=array;//此時p指向array[0]p++;//這裡的p自增,執行後p指向array[1]
c語言中指標運算子*和自增運算子++的優先順序
5樓:慶年工坊
c語言中自增運算子++作為字尾的話比指標運算子*的優先順序高,作為字首的話與指標運算子*平級。
c語言的運算子主要用於構成表示式,同一個符號在不同的表示式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表示式。需要特別指出,在c語言標準中,並沒有結合性的說法。
相同優先順序運算子,從左至右依次運算。注意字尾運算優先順序高於字首。因此++i++應解釋為++(i++)。
而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b)|| (b && c)
合理使用優先順序可以極大簡化表示式。
基本表示式 1級
基本表示式(primary expressions),主要是用於運算子之間,做為運算數。
標識,常量,字串文字量,優先順序提升表示式最優先執行。
優先順序提升表示式是指圓括號包圍的表示式,如「( expression )」
字尾表示式 2級
postfix-expression [ expression ],陣列下標運算。
postfix-expression (argument-expression-list),函式呼叫,括號內的引數可選。
postfix-expression . identifier,成員訪問,
postfix-expression -> identifier,成員訪問,->號之前應為指標。
postfix-expression ++,字尾自增
postfix-expression --,字尾自減
( type-name )
( type-name ) 複合初始化,c99後新增。
單目/一元運算 3級
++ unary-expression 字首自增
-- unary-expression 字首自減
unary-operator cast-expression 單目轉型表式式, 包括 取地址& ,提領 * , 正號+ ,負號- 位反~ 邏輯否!。
sizeof unary-expression 求型別長度,對表示式求型別長度
sizeof ( type-name ) 求型別長度
強制型別表示式 4級
(type-name ) cast-expression,強制表示式成為type-name指定的型別。
乘法表示式 5級
「 * 」 乘法運算子;「 / 」除法運算子;「 % 」 取餘運算子。
加法運算子 6級
「 + 」加法運算子;「 - 」減法運算子。
移位運算子 7級
<< 左移運算子;>> 右移運算子。
關係運算子 8級
<、<=、>、>=關係運算子。
相等運算子 9級
「 == 」等於運算子;「 != 」不等於運算子。
位與運算子 10級
「 & 」按位與運算子
位異或運算子 11級
「 ∧ 」按位異或運算子(bitwiseexclusive or operator)。
位或運算子 12 級
「 | 」按位或運算子(bitwiseinclusive or operator)。
邏輯與運算子 13級
「&&」邏輯與運算子。
邏輯或運算子 14 級
「 || 」邏輯或運算子。
三元條件運算子 15級
? :條件運算子。
賦值運算子 16 級
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。
逗號運算子 17級
「,」逗號運算子。
6樓:小夏在深圳
運算子的優先順序確定表示式中項的組合。這會影響到一個表示式如何計算。某些運算子比其他運算子有更高的優先順序,乘除運算子具有比加減運算子更高的優先順序。
例如 x = 7 + 3 * 2,在這裡,x 被賦值為 13,而不是 20,因為運算子 * 具有比 + 更高的優先順序,所以首先計算乘法 3*2,然後再加上 7。
結合性是指具有相同優先順序的操作符的運算順序,從左至右運算稱為左結合,從右至左運算稱為右結合。
自增(++)和自減(--)操作符為物件加1或減1操作提供了方便簡短的實現方式。它們有前置和後置兩種使用形式。到目前為止,我們已經使用過前自增操作,該操作使其運算元加1,操作結果是修改後的值。
c語言運算子是說明特定操作的符號,它是構造c語言表示式的工具。c語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算子處理。
擴充套件資料
運算子優先順序
1、函式計算優先。
2、其次是強制型別轉換。
3、自增、自減和取反次之。
4、先乘除再加減。
5、有括號先算括號內的。
6、表示式中出現連續兩個運算子時最好用空格隔開,如a+++b要寫成:a++ +b或a+ ++b。同一優先順序的運算子,運算次序由結合方向所決定。
7樓:靳大大來了
附錄c c語言運算子優先順序和結合性
優先順序 運算子 含義 運算型別 結合性
1 ( )
[ ]->
, 圓括號
下標運算子
指向結構體成員運算子
結構體成員運算子 單目 自左向右
2 !~
++ --
(型別關鍵字)
+ -*
&sizeof 邏輯非運算子
按位取反運算子
自增、自尖運算子
強制型別轉換
正、負號運算子
指標運算子
地址運算子
長度運算子 單目 自右向左
3 * / % 乘、除、求餘運算子 雙目 自左向右4 + - 加、減運算子 雙目 自左向右
5 <<
>> 左移運算子
右移運算子 雙目 自左向右
6 < <= > >= 小於、大於、小於等於、大於等於 關係 自左向右
7 = = != 等於、不等於 關係 自左向右8 & 按位與運算子 位運算 自左向右
9 ^ 按位異或運算子 位運算 自左向右
10 | 按位或運算子 位運算 自左向右
11 && 邏輯與運算子 位運算 自左向右12 || 邏輯或運算子 位運算 自左向右13 ? : 條件運算子 三目 自右向左
14 = += -= *=
/= %= << = >>= &= ^= |= 賦值運算子 雙目 自右向左
15 , 逗號運算 順序 自左向右
8樓:伊·梵
*p_value++等價於 *(p_value++)
printf("(*p_value)++是%d\n", (*p_value)++);
// 這一行輸出的*p_value的值,也就是4,輸出之後*p_value結果自增為5
printf("*p_value++是%d\n", *p_value++);
// 這一行輸出的*p_value的值,也就是5,輸出之後p_value結果自增
程式沒有亂碼:
9樓:
#include
int main()
自己觀察執行結果就一目
瞭然了。
10樓:草擬大葉
因為指標地址自增之後,列印的是記憶體一塊未分配地區,這塊區域內容無法預知。
而先取值後自增,就是值得自增,不是指標地址自增。
c語言中指標加減問題,求解答C語言中指標問題真的求,搞不懂,求解答?
首先 float a 10 p,q p a 4 q a 7 那q p 2 a 4 與a 7 之間有兩個元素 這裡就不對了,q p 3 不是等於2,可以用printf d q p 看看。p 3 p 12 是地址按 位元組 排列的位置差,表示p 3和p之間有12個位元組 q p 3 表示q和p之間有3個...
指標和指標變數有什麼區別呢C語言中指標和指標變數的區別是什麼??
用例子來看一下。int a 3 int p p a 現在來看一下。a 3這個式子先解釋一下 等式右邊是常量,左邊是變數。同理的p a,左邊的是指標變數,右邊的是指標 指標的基本概念 為了區別記憶體的不同位置,記憶體被分成位元組,記憶體的全部位元組順序地賦予一個稱為地址的編號。程式中的變數將在記憶體中...
c語言中指標中的是什麼意思,C語言中,指標中的 是什麼意思
在宣告int pirand中 表示這個變數是int型別的指標 在宣告之外 可以理解成一個運算子 或者一個函式 和 是一對逆運算 的意思是讀一個變數的地址 比如你宣告瞭int a a是a的地址可能是xx1001之類的可以在除錯裡看一下 的意思是讀一個地址指向的內容 pirand pirand rand...