除了变量名不是内存地址,其他名都是地址。对么?

lophyxp 2003-05-06 07:00:22
有位学长这样跟我说的,是么??
...全文
141 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
njuhuangmy 2003-06-23
  • 打赏
  • 举报
回复
个人 觉得 那位 学长 说得 还是 有点 道理得

我们 从 c 语言来看吧

输入得 时候 , 对 变量名

int a;
scanf("%d", &a);

呵呵, 这样 来 考虑,也觉得 有点 道理 哦
idontlikenickname 2003-06-23
  • 打赏
  • 举报
回复


你那位学长可真是毁人不倦啊~~

lophyxp 2003-06-23
  • 打赏
  • 举报
回复
是不是就是说,将这句话改成“在c中,除了变量名不是内存地址,其他名都是地址。”就对了?
ttzzgg_80713 2003-05-14
  • 打赏
  • 举报
回复
seeing
Zark 2003-05-14
  • 打赏
  • 举报
回复
哈...
向earnMoney前辈致敬.
Berton2L 2003-05-11
  • 打赏
  • 举报
回复
to zark:

所谓标识符常量是指由const或#define定义的常量,比如:

const PI=3.14159;

而对char *str="sdfsdf";str不是标识符常量,我想这一点你可能没有搞清楚。至于其他几类都归结为变量名,我想有点牵强,最起码这样区分有助于回答楼主的问题。看来你的底子不是太好的,还需要多学习哟。
ib586 2003-05-10
  • 打赏
  • 举报
回复
变量是地址的别名..就像刚生的小孩,你只知道他在地球上的某个位置,而不能叫出他名字,给你取个名.
justaseeker 2003-05-10
  • 打赏
  • 举报
回复
变量名是用来标识某个内存块的
地址就是地址啦,如是变量名的话,用取地址运算符&就可以得到它标识的内存块的地址,
而指针变量呢,它本身也是一个变量名,只不过它标识的那块内存存放的是一个地址值
: right!
Zark 2003-05-10
  • 打赏
  • 举报
回复
开了眼界,竟然还有这么多名.

标识符常量名、指针名、数组名、都应该是变量名吧?
int nVal; //这千真万确是变量名.
char* ptr=&Val //ptr就是指针名吧?! 可ptr千真万确是变量名.
char* str="I am constant"; //str是标识符常量名吧?! 可str千真万确是变量名.
char array[300]; //array是数组名吧?!可array千真万确是变量名.

至于类名和结构名在概念上似乎和变量名不是同一范畴的.
Berton2L 2003-05-10
  • 打赏
  • 举报
回复
所谓的其他名无非是函数名、标识符常量名、指针名、数组名、结构名、类名等等。

楼主的话有部分是对的,

比如指针名、数组名、函数名就是地址,它们分别表示指针所指向元素的地址、数组的首地址和函数的入口地址。

变量名虽然不直接表示地址,但可用取地址符号&来获得它所代表的变量的存放地址。因为在定义变量的同时会分配给它相应的空间。

但类和结构只有事例化时才为它分配空间,从而不能用取地址符号&来获得类名或结构名的地址。



aiyinsitan 2003-05-10
  • 打赏
  • 举报
回复
应该说都是名字, 或者识标符.
都有地址, 但分为可寻址的, 和不可寻址
Zark 2003-05-09
  • 打赏
  • 举报
回复
有趣!除了变量名,还有其他什么名? 我知道的是还有函数名,函数名本身就是个地址.不知楼主认为还有什么名?
yzb1000 2003-05-09
  • 打赏
  • 举报
回复
文字常量应该不可寻址的
楼主看看这个吧
http://expert.csdn.net/Expert/topic/1625/1625671.xml?temp=.8701288
mercury1231 2003-05-08
  • 打赏
  • 举报
回复
我看过<<C++对像模型>>
上面好像是这么说的"字面常量"也算是地址,好像是说什么东西都是地址吧,
const char *ch="aaa";
"aaa"也算是地址,
变量名当然也是地址了,我不知道什么不是地址.
------------------------------------------

文字常量不是不可寻址的吗?
gale98a 2003-05-07
  • 打赏
  • 举报
回复
内存单元的编号叫做地址.
mero 2003-05-07
  • 打赏
  • 举报
回复
这是个宏观和整体的问题
Caoyu015 2003-05-06
  • 打赏
  • 举报
回复
应该是能应用取地址符在其上的都标识了一个内存地址。
fayekiss 2003-05-06
  • 打赏
  • 举报
回复
我看过<<C++对像模型>>
上面好像是这么说的"字面常量"也算是地址,好像是说什么东西都是地址吧,
const char *ch="aaa";
"aaa"也算是地址,
变量名当然也是地址了,我不知道什么不是地址.
messagebox 2003-05-06
  • 打赏
  • 举报
回复
变量名和地址是两个概念啊
变量名是用来标识某个内存块的
地址就是地址啦,如是变量名的话,用取地址运算符&就可以得到它标识的内存块的地址,
而指针变量呢,它本身也是一个变量名,只不过它标识的那块内存存放的是一个地址值
aiyinsitan 2003-05-06
  • 打赏
  • 举报
回复
应该是除了文字常量, static对象, etc.
其他的变量都 "有" 地址, 变量名不是地址(除非它是指针).
加载更多回复(2)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧