PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 地址問題
作者:
anoymouse
(沒有暱稱)
2014-11-23 22:37:31
請問為什麼變數的地址在mian不能對他做加減運算
可是丟到函式就可以做加減法運算?
例如 char b[10]="asdf";
b=b+1; //在函數可以做
作者:
bibo9901
(function(){})()
2014-11-23 22:47:00
因為 array 不是 pointer, 而且是 not modifiable但是變成指標傳到函數之後, 那就是指標而不是陣列了
作者:
flydragon198
(Richard)
2014-11-23 23:09:00
通常會叫address為位址
作者:
anoymouse
(沒有暱稱)
2014-11-23 23:21:00
瞭解 謝謝
作者:
LPH66
(-6.2598534e+18f)
2014-11-24 01:26:00
事實上你有一個問題搞錯了: 陣列變數不能做的是對其賦值也就是這裡出問題的是 = 這個動作而這裡 + 這個動作編譯器會先幫你把陣列變數變成指標再做幾乎所有陣列變數能做的運算都會先這樣 decay 後才進行的所以你其實可以 char *p; p = b+1; 這樣是合法的p 在這之後會指向你的字串中 's' 這個 char 的所在位置
作者:
anoymouse
(沒有暱稱)
2014-11-25 02:29:00
恩 我本是想改變指標變數b的位址
作者:
LPH66
(-6.2598534e+18f)
2014-11-25 04:14:00
b 本來就不是指標變數而是陣列變數, 所以你想要那樣的話就另外宣告一個指標變數來指就好
繼續閱讀
Re: [問題] operator=裡呼叫destructor
kwpn
Re: [問題] #define過的東西
jacky1989
[問題] operator=裡呼叫destructor
Caesar08
[問題] 請教operator()的意義
Keitaro
[問題] C++ class this問題
anoymouse
Re: [問題] 三維陣列?
carylorrk
[問題] 三維陣列?
nsysukober
[問題] 關於C語言指標傳址的問題
defsrisars
[問題] windows上的大檔案操作
KILLE
Re: [問題] 為什麼真心問個問題會被刪文
KILLE
Links
booklink
Contact Us: admin [ a t ] ucptt.com