首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-08 
局部变量与全局变量重名问题听说局部变量和全局变量可以重名,但是用全局变量时要使用“::”,写了几行代码验

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

#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;
}

热点排行