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