Fw: [考題] C++ 變數、繫結、和資料型態
※ [本文轉錄自 Examination 看板 #1J37AWAe ]
作者: Sunofgod ( ) 看板: Examination
標題: [考題] 98年地特程式語言考古題
時間: Tue Feb 25 18:38:22 2014
http://wwwc.moex.gov.tw/ExamQuesFiles/Question%5C098/036339600.pdf
第二題
變數、繫結、和資料型態(20 分)
Void sub() {
int count;
count = 7;
while ( … ) {
int count;
count += 1;…
}
sum = count * 5;…
(一)說明在 C++和 Java 語言中,上列敘述是否合法及其原因。
在C++中合法 但請問理由要怎講?? 我只知道while當中的count跟外面的count是擁有不同
的兩個記憶體,while中宣告的count的scope只在while的"{}"內
所以while的"{}"內用到的count都會去存取自己宣告的那個count
最後出了while,sum=count*5會是引用sub副程式一開始宣告的count=7的值
Java不熟 只知道大多地方跟C/C++很像 請問這部分是一樣的嗎?
(二)請討論其中變數count的記憶體配置的繫結(binding)以及有效範圍(scoping)。
兩個count應該都是堆疊動態變數 也就是變數型態在compile時繫結
但記憶體的繫結發生在該行程式碼要執行時
sub函式一開始宣告的count的scoping是整個sub函式
while內宣告的count的scoping僅只在while的"{}"內
請問第一題該怎樣回答比較好?
第二題自己這樣寫有問題或者內容不足嗎?
謝謝回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.254.96.163
→
02/25 21:34, , 1F
02/25 21:34, 1F
→
02/25 22:07, , 2F
02/25 22:07, 2F
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: Sunofgod (218.164.83.247), 時間: 02/26/2014 20:28:25
→
02/26 20:29, , 3F
02/26 20:29, 3F
→
02/26 20:29, , 4F
02/26 20:29, 4F
推
02/26 21:34, , 5F
02/26 21:34, 5F
→
02/27 04:04, , 6F
02/27 04:04, 6F
→
02/27 12:22, , 7F
02/27 12:22, 7F
→
02/27 16:29, , 8F
02/27 16:29, 8F
→
02/27 20:44, , 9F
02/27 20:44, 9F
→
02/27 23:28, , 10F
02/27 23:28, 10F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章