【发布时间】:2019-05-01 13:18:22
【问题描述】:
从下面的代码如何打印全局值:
条件是,不能使用extern关键字,不能注释本地初始化&不能移位printf函数。
#include <stdio.h>
int a = 20;
int main()
{
int a = 10;
printf("%d",a);
}
我期待20 的输出。
【问题讨论】:
-
int a=20;main(){int *ga=&a;int a=10;printf("%d\n",*gaa);} -- 不使用 extern: check -- 不评论 local: check -- not shift printf: check
-
你应该首先避免这样的名称冲突。
-
你应该避免使用全局变量
-
在 C 中,没有一种明智的方法可以做到这一点,除非您在
main()的定义之前添加#define a z并在其后添加#undef a或其他同样愚蠢的东西。在 C++ 中,范围解析运算符可能会有所帮助,但会修改printf()语句。无论你的教员想什么技术,都不太可能在专业上有用;编写清晰的代码是首要要求。
标签: c