
那這個題目的D選項就是因為指標變數不能存放常量所以是錯的。

但是這第二題中對指標變數定義的時候不都是用常量0來定義的嗎?這里為什么就可以呢?
uj5u.com熱心網友回復:
電腦記憶體或檔案內容或傳輸內容只是一個一維二進制位元組陣列及其對應的二進制地址;人腦才將電腦記憶體或檔案內容或傳輸內容中的這個一維二進制位元組陣列及其對應的二進制地址的某些部分看成是整數、有符號數/無符號數、浮點數、復數、英文字母、阿拉伯數字、中文/韓文/法文……字符/字串、匯編指令、函式、函式引數、堆、堆疊、陣列、指標、陣列指標、指標陣列、陣列的陣列、指標的指標、二維陣列、字符點陣、字符筆畫的坐標、黑白二值圖片、灰度圖片、彩色圖片、錄音、視頻、指紋資訊、身份證資訊……
推薦使用WinHex軟體查看硬碟或檔案或記憶體中的原始位元組內容。
uj5u.com熱心網友回復:
只能說 0 是個例外,萬事總有個例外,C 語言也不例外,知道就行了,沒什么好理解的uj5u.com熱心網友回復:
不過這也能看出來,0 不代表具體的地址,只是表示一個空指標。uj5u.com熱心網友回復:
可以賦值常量,但是型別不對。0其實是(void *)0。即NULLuj5u.com熱心網友回復:
第一題中D選項 指標存放值的地址 不直接存放值。你可以這樣理解給你舉個通俗的例子。
一個柜子,暫且就叫做一號柜子,里面可以有100塊錢 柜子就是指標 錢就是值。
你可以拿走或者增加柜子里面的錢 但是你不能改柜子的編號。
你可以給柜子里面再放1000塊錢 但是你不能說給1000號柜子里面放錢,因為不存在這樣的柜子。
第二題,就很顯然了。
我就把1號,2號,3號柜子改名叫0號柜子了。
uj5u.com熱心網友回復:
典型的胡吣。D不合適的原因不在于常量,而在于型別不匹配。
實際上,D也是可以的。這要看是在什么情況下。在需要用絕對地址的時候,沒辦法的時候,1024也可以的,它可以自動轉換為指標型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12656.html
標籤:C語言
下一篇:C++用getline(fin,str)讀取文本檔案的ifstream物件fin每一行,哪種寫法較好,結果正確?
