[問題] 新手運算子的優先問題
看板C_and_CPP作者william6718 (有錢沒錢當個阿宅好過年)時間12年前 (2012/04/17 21:36)推噓5(5推 0噓 17→)留言22則, 8人參與討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev C++5.0
問題(Question):
小弟最近在學習指針的時候發生了運算子優先級的困擾...
程式碼如下
#include <stdio.h>
#include <windows.h>
int main(void)
{
int ar[6]={1,2,3,4,5,0};
int *ptr=ar;
*ptr++;
printf("%d\n",*p);
printf("%p\n",p);
system("pause");
}
疑惑出現*ptr++;這一段
我查書上有書說:
指針ptr先取值再自加的動作
不過也有書說
指針ptr先自加再取值的動作
神奇的是...
我查運算優先級資料
有後綴++優先於*的說法
也有後綴++與*同級的說法
還是這個問題是要看編譯器來決定?
煩請各位高手指點迷津
剛剛試了一下
*ptr++ 結果是2 記憶體是0022FEF8
*++ptr 結果是2 記憶體是0022FEF8
結果是一樣的
所以要如何解釋這兩個運作...越來越糊塗了
我在書上看到*(*zippo+2)+1 代表二維陣列[2][1]的值
感覺左邊不好理解啊....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.117.8
※ 編輯: william6718 來自: 59.112.117.8 (04/17 21:38)
推
04/17 21:42, , 1F
04/17 21:42, 1F
→
04/17 21:43, , 2F
04/17 21:43, 2F
→
04/17 21:43, , 3F
04/17 21:43, 3F
→
04/17 21:51, , 4F
04/17 21:51, 4F
※ 編輯: william6718 來自: 59.112.117.8 (04/17 22:08)
→
04/17 22:10, , 5F
04/17 22:10, 5F
推
04/17 22:11, , 6F
04/17 22:11, 6F
→
04/17 22:11, , 7F
04/17 22:11, 7F
→
04/17 22:11, , 8F
04/17 22:11, 8F
→
04/17 22:12, , 9F
04/17 22:12, 9F
→
04/17 22:15, , 10F
04/17 22:15, 10F
推
04/17 22:15, , 11F
04/17 22:15, 11F
→
04/17 22:16, , 12F
04/17 22:16, 12F
→
04/17 22:17, , 13F
04/17 22:17, 13F
→
04/17 22:28, , 14F
04/17 22:28, 14F
→
04/17 22:31, , 15F
04/17 22:31, 15F
→
04/17 22:40, , 16F
04/17 22:40, 16F
→
04/17 22:40, , 17F
04/17 22:40, 17F
推
04/17 23:11, , 18F
04/17 23:11, 18F
→
04/17 23:13, , 19F
04/17 23:13, 19F
※ 編輯: william6718 來自: 59.112.117.8 (04/17 23:23)
→
04/17 23:51, , 20F
04/17 23:51, 20F
推
04/18 00:13, , 21F
04/18 00:13, 21F
→
04/18 00:54, , 22F
04/18 00:54, 22F
討論串 (同標題文章)