c語言 和 運算子優先順序

2021-10-01 02:16:19 字數 1712 閱讀 5729

/*

*左++ > * >右++

*比如 ++ *i 相當於  ++ (*i) ,指標i對應的變數+1。

*實驗如下

*/#include

#include

#include

int main(void)

for(i = 0; i < 5; i++)

printf("%d addr %p\n", a[i],(ptr + i));

printf("\n");

printf("ptr is %p\n", ptr);

printf("*ptr++ %d\n", *ptr++);

printf("ptr is %p\n", ptr);

printf("(*ptr)++ %d\n", (*ptr)++);

printf("ptr is %p\n", ptr);

printf("*ptr %d\n", *ptr);

printf("ptr is %p\n", ptr);

printf("*++ptr %d\n", *++ptr);

printf("ptr is %p\n", ptr);

printf("++*ptr %d\n", ++*ptr);

printf("ptr is %p\n", ptr);

printf("\n[");

for(i = 0; i < 5; i++)

printf("%d ", a[i]);

printf("]\n");

return 0;

}root@opcv-virtualbox:/home/opcv/test_module/test_csafe# ./ptr 

0 addr 0x7ffdc91584d0

1 addr 0x7ffdc91584d4

2 addr 0x7ffdc91584d8

3 addr 0x7ffdc91584dc

4 addr 0x7ffdc91584e0

ptr is 0x7ffdc91584d0

*ptr++ 0----------------------》列印0 ,然後改變指標位址

ptr is 0x7ffdc91584d4

(*ptr)++ 1--------------------》列印1,然後ptr指的內容+1

ptr is 0x7ffdc91584d4

*ptr 2-------------------------》列印2

ptr is 0x7ffdc91584d4

*++ptr 2----------------------》列印2,先運算++ptr,然後在取值

ptr is 0x7ffdc91584d8

++*ptr 3-------》列印3,先取內容,然後內容在++

ptr is 0x7ffdc91584d8

[0 2 3 3 4 ]

實驗二 *ptr++

#include

int main(void)

實驗結果:

root@opcv-virtualbox:/home/opcv/test_module/test_csafe# ./ptr_1

ptr 0x7ffc8752002c *ptr 10 

ptr 0x7ffc87520030 *ptr -2024669136 -------------ptr++(指標++)

運算子優先順序 C 運算子優先順序

c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...

C語言運算子優先順序

優先順序運算子 名稱或含義 使用形式 結合方向說明1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成員選擇 物件 物件.成員名 成員選擇 指標 物件指標 成員名2 負號運算子 表示式 右到左單目運算子 型別 強制型別轉換 資料型別 表示式 自增運算子 變數名 變數名 單目運...

c語言運算子優先順序

優先順序運算子 名稱或含義 使用形式 結合方向說明1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成員選擇 物件 物件.成員名 成員選擇 指標 物件指標 成員名2 負號運算子 表示式 右到左單目運算子 型別 強制型別轉換 資料型別 表示式 自增運算子 變數名 變數名 單目運...