題目:請問以下例1和例2的str有什麼區別?
例1:
#include int main(int argc,char **ar**)例2:; printf("%s\n",str);
}
#include int main(int argc,char **ar**)解析:
術語:例1字串陣列,例2字串指標
關鍵點:
例1、例2的str和helloword在**,這個答道位就可
例1:一、程式執行到main後,
1.1、str變數處於棧空間(本質上它是char [10]型別),佔空間4個位元組(預設32位機器)
1.2、棧中分配陣列,陣列大小為11個位元組
1.3、str所指向的內容就是陣列頭,陣列頭位址賦值給str變數
1.4、陣列容納資料量的大小為11個位元組
1.5、陣列容納資料內容目前是未知的
1.6、引申:能修改str所指向的內容
二、程式執行到4行後,
2.1、str所指向的陣列才會有內容
例2:程式執行到main後,
1.1、str處於棧空間(本質上它是char *型別),佔空間4個位元組(預設32位機器)
1.2、str所指向的內容未知的
二、程式執行到4行後
2.1、str才會有內容
2.2、"hello,word"在唯讀文字段中,**執行到此後進行賦值動作
2.3、引申:不能修改str所指向的內容
得分點:
1、術語(佔30分)
只是入門款對知識點知道,不能抓住考官的心,
2、本質
考官一般基於這個問題再深入問下去,考官希望通過乙個小點,來看你對以下內容的理解:
變數讀寫的屬性(又加30分)
靜態的可執行程式與執行時程式的差異(再加30分)
tips:
c是乙個把蘭州拉麵廚師的手中的切牛肉的刀,用的好食客會看到很多片牛肉(但是其實分量草雞小),用的差食客碗裡都是牛肉塊了。
c語言並不是給新人用來工作的,是給專家來使用的,所以學習c是乙個相對漫長的過程,市面上寫的《一周學會》、《一月學會》等等書籍,看著也是讓人深思,這也是一種誤導。
c語言本質上就是簡潔的,它伴隨unix一起被人創造出來,高傲的簡潔效能造就了它本質深奧的源泉。
以上可能就是你踏入工地後,收到c語言暴擊後的見面禮。
年輕人第二道C語言面試題
題目 程式執行結束應該列印什麼呢?include include int main int argc,char ar 解析 術語 記憶體越界 溢位 棧空間 棧記憶體分配排序 關鍵點 原因 記憶體越界 溢位 本質 棧空間 棧記憶體分配排序 具體 詳細步驟分析 這一題目根據對c語言的理解不同,結果也不同...
一道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...
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...