嵌入式面試題C語言 一 陣列一道面試題

2021-09-06 20:59:59 字數 469 閱讀 1326

這道題在工作中實際程式設計很少能遇到,至少我沒有涉及到,但是低於陣列指標其實是一種深入理解或者說另一種思考的角度,這是一道面試題:

int a = ;

1.printf(「a[5] is %d\n」, a[5]);

2.printf(「5[a] is %d\n」, 5[a]);

這就是考題 這裡直接給出結果 6 ,6

在我試驗輸出這個結果的時候其實我還是不理解,按照我的想法1輸出6正常,但是2不應該啊,我當時想a是資料位址那麼5[a],實際應該是乙個不確定的記憶體資料才對,然後我再網上找到類似這道題解釋如下:

陣列a[5],可以解析為*(a+5),也就是基址 + 偏移量(這樣理解的話a[5]和5[a]實際是一樣)

a[5]  ==>  *(a+5)

||5[a] ==> *(5+a)

我當時是從陣列角度來理解這個問題,實際要是結合指標位址角度結合理解才是本質

16道嵌入式 語言面試題

預處理器 preprocessor 1.用預處理指令 define 宣告乙個常數,用以表明1年中有多少秒 忽略閏年問題 define seconds per year 60 60 24 365 ul 我在這想看到幾件事情 1 define 語法的基本知識 例如 不能以分號結束,括號的使用,等等 2 ...

嵌入式C語言面試題

1 讀程式,回答問題 int main int argc,char argv a 寫出程式的結果 b 在乙個可移植的系統中這種表示式是否存在風險?why?答 a 4 b 存在風險,因為c c 5 在這個表示式中,對c有兩次修改,行末未定義,c的值不明確。2 include stdio.h int a...

一道c 面試題

float a 1.0f cout int a endl cout int a endl int a 是什麼意思?cout boolalpha int a int a endl float b 0.0f cout int b endl cout int b endl cout boolalpha i...