Re: [問題] 針對一些考題的疑問。
※ 引述《ariesd ()》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: linux
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 無
: 問題(Question):
: 有些考題上的疑問,希望可以幫忙解惑。
: 以下只寫重點。
: Q1."volatile"可以用在指標上嗎?
: 我知道"volatile"作用,但不確定能否用在指標上。
: Q2.寫一個檢查輸入為3倍數的函數,但不能使用除法和餘數。
: 除了使用
: while(input>2){input-=3 check=input}if(check)...
: 這種算法外,還有更好的算法嗎?
這方法不錯了
不然利用3倍數的特性 寫一個function 把原數字轉字串後取出每個位的數字 求和
看是否大於9 是的話 recursive 不是的話 若數字是0 3 6 9那就是3倍數
: Q3. ...
: int *p=a[0]
: *(p++)+=123;
: 這有違反十三誡中的未定義行為吧。
沒有
++是整個敘述完才做
a[0]會加上123
接著p指向&a[1]
: Q4.Re-write
: void(*(*papf)[3])(char *);
: typedef__________;
: pf(*papf)[3];
: 只知道函式指標和typedef基本用法,但看不太懂題目。
: 餵入的資料(Input):
: 預期的正確結果(Expected Output):
: 錯誤結果(Wrong Output):
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
參考 #1EkLIycp
papf is a pointer to array of pointer to function return void
考題是要你填空 最後一行有個pf未定義 所以是要定義這一個
papf is a pointer to array of pf
所以pf is a pointer to function return void
typedef void(*pf)(char *);
有錯請指正 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.140.149
→
01/08 15:03, , 1F
01/08 15:03, 1F
→
01/08 15:14, , 2F
01/08 15:14, 2F
→
01/08 15:15, , 3F
01/08 15:15, 3F
→
01/08 15:18, , 4F
01/08 15:18, 4F
→
01/08 15:20, , 5F
01/08 15:20, 5F
推
01/08 15:29, , 6F
01/08 15:29, 6F
推
01/08 17:09, , 7F
01/08 17:09, 7F
→
01/09 22:35, , 8F
01/09 22:35, 8F
→
01/09 22:36, , 9F
01/09 22:36, 9F
→
01/09 22:37, , 10F
01/09 22:37, 10F
→
01/10 09:44, , 11F
01/10 09:44, 11F
討論串 (同標題文章)