读书人

局部变量与全局变量重名有关问题

发布时间: 2012-03-08 13:30:13 作者: rapoo

局部变量与全局变量重名问题
听说局部变量和全局变量可以重名,但是用全局变量时要使用“::”,写了几行代码验证了下,发现错了,不知道是我代码写的问题还是其他。。。
代码:

#include <stdio.h>
#include <stdlib.h>

int a=10;

int main()
{
int a=2;
printf("local a=%d\n", a);
printf("all a=%d\n",::a);

return 0;
}
求解惑?????

[解决办法]
如果C

C/C++ code
#include <stdio.h>#include <stdlib.h>static int a=10;void printA(){  printf("all a=%d\n",a);}int main(){  int a=2;  printf("local a=%d\n", a);  printA();  return 0;}
[解决办法]
一流正解
[解决办法]
探讨

引用:

一元::是C++用的表示全局命名空间的操作符,纯C当然不行。



没明白,今天再打开竟然可以运行了~

[解决办法]
探讨

C/C++ code

#include <stdio.h>
#include <stdlib.h>

static int a=10;//定义全局静态变量就行了,C可以重名

int main()
{
int a=2;
printf("local a=%d\n", a);
printf("all a=%d\n",::a);

return 0;
}

读书人网 >C语言

热点推荐