求助:某司的一道笔试题(关于编译时确定哪些变量内存地址)

syscofield 2013-10-04 04:01:28
多选:
下列声明变量的方式,哪些是在编译时就确定了变量的内存地址:
A.声明时初始化的全局变量
B.声明时未初始化的全局变量
C.函数局部变量
D.宏里声明的变量
E.函数中带作用域方式声明的变量
...全文
391 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2013-10-07
  • 打赏
  • 举报
回复
A,B 存储在,数据区。所以编译链接后,就确定了地址,最多延迟到程序加载的时候。(广义的编译期确定) C 函数局部变量,编译时确定,分配的相对位置,函数调用时,实际分配内存。 D 不确定,因为宏只是会做个替换而已。 E 比较含糊,想坑人还是想蒙人。 大概只有C++ 类(类型)静态变量,才用作用域限定符定义吧!! 函数中带作用域方式声明的变量 ,有谁用过? 感觉还是 A,B
ANGUD 2013-10-05
  • 打赏
  • 举报
回复
引用 5 楼 zhouchichi203 的回复:
引用 3 楼 wangyaninglm 的回复:
我猜ab。。。猜的
我也是这么猜的,可是到底是什么呢
+1
在路上198978 2013-10-04
  • 打赏
  • 举报
回复
引用 9 楼 z542858367 的回复:
引用 7 楼 zhouchichi203 的回复:
引用 6 楼 z542858367 的回复:
我会选AB。
理由呢
AB都是全局变量存放在静态存储区,在程序开始运行时就已经分配了空间,而局部变量在程序运行到声明代码时才分配空间。
c选项属于自动变量,存储在动态存储区,D选项:宏,预处理在程序编译之前就不存在了,不占用内存空间,仅仅做一个替换功能。E选项,无论以何种方式申明,只要不是静态局部变量,它就属于动态存储区。
syscofield 2013-10-04
  • 打赏
  • 举报
回复
引用 8 楼 shn521 的回复:
A.声明时初始化的全局变量 B.声明时未初始化的全局变量 在静态存储区
嗯,是的~
Smile_大笑 2013-10-04
  • 打赏
  • 举报
回复
引用 7 楼 zhouchichi203 的回复:
引用 6 楼 z542858367 的回复:
我会选AB。
理由呢
AB都是全局变量存放在静态存储区,在程序开始运行时就已经分配了空间,而局部变量在程序运行到声明代码时才分配空间。
shn521 2013-10-04
  • 打赏
  • 举报
回复
A.声明时初始化的全局变量 B.声明时未初始化的全局变量 在静态存储区
syscofield 2013-10-04
  • 打赏
  • 举报
回复
引用 6 楼 z542858367 的回复:
我会选AB。
理由呢
Smile_大笑 2013-10-04
  • 打赏
  • 举报
回复
我会选AB。
syscofield 2013-10-04
  • 打赏
  • 举报
回复
引用 3 楼 wangyaninglm 的回复:
我猜ab。。。猜的
我也是这么猜的,可是到底是什么呢
missheaven2011 2013-10-04
  • 打赏
  • 举报
回复
我猜AB。。。
shiter 2013-10-04
  • 打赏
  • 举报
回复
我猜ab。。。猜的
yangyi_33855 2013-10-04
  • 打赏
  • 举报
回复
难道是ADE
shn521 2013-10-04
  • 打赏
  • 举报
回复
ABE吧

69,382

社区成员

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

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