這是我的教科書中的練習。我需要找到這個代碼的輸出。瞭解此代碼的輸出
#include<iostream>
using namespace std;
int main()
{
int x[]={10,20,30,40,50};
int *p,**q,*t;
p=x;
t=x+1;
q=&t;
cout<<*p<<","<<**q<<","<<*t++;
return 0;
}
輸出是
10,30,20
在這裏,我不明白**問的聲明,以及如何它的價值出來是30.我還注意到,改變了過去的聲明
cout<<*p<<","<<**q<<","<<*t;
改變輸出到
10,20,20
有人能解釋幕後發生了什麼嗎?提前致謝。
儘快拋出教科書。 – interjay
閱讀序列點(https://en.wikipedia.org/wiki/Sequence_point)和http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points – Abhineet
@Abhineet我認爲這個話題是對於初學者來說太過先進了,這本蹩腳的書的作者需要閱讀它。 +1到interjay - 扔掉這個。 – Slava