我有一个全局变量和一个具有相同名称的局部变量.我可以将局部变量复制到全局变量(assign),而无需先将全局变量的值分配给某个临时变量(使用extern),然后将临时变量分配给全局变量吗?我需要做这样的事情:
#include<stdio.h>
int myVariable = 50;
void myFunction()
{
int myVariable;
myVariable /*global*/ = myVariable /*local*/;
}
Run Code Online (Sandbox Code Playgroud)
在C中是否有某种方法可以做到这一点(不使用临时变量(或数组中的指针))?我发现在C++,Java或C#中可以使用像这样的关键字,super,base等,但在C中找不到解决方案.
我已经提到过如何在C中访问带阴影的全局变量?
可能的重复:
如何在 C 中访问隐藏的全局变量?
如果有同名的局部变量,如何访问 C 中的全局变量?
int m=20 ;
void main()
{
int m=30;
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读一本关于C语言的书('掌握C'),并::在此处找到了有关范围解析运算符()的主题,请参阅第203页的Google Books .
但是当我运行以下代码示例(从本书中复制)时,C编译器给了我一个错误.我在互联网上搜索但我无法在C中找到任何对范围解析运算符的引用.
#include <stdio.h>
int a = 50;
int main(void)
{
int a =10;
printf("%d",a);
printf("%d\n", ::a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我想访问一个全局变量,那我怎么能从main()函数中做到这一点呢?
可能重复:
如何在C中访问带阴影的全局变量?
在C++中,我可以使用::operator来指定全局变量.例如:
using namespace std;
int foo = 10;
int main(){
int foo = 5;
cout<<" Global variable: "<< ::foo <<endl;
cout<<" Local Variable: " << foo <<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在C中这样做?
如果我们有一个全局定义的变量"x"和一个函数内具有相同名称"x"的另一个变量.当我们打印"x"的值为什么我们总是得到函数内部赋值的值?我们有什么方法可以打印全局变量值.
int x=8;
void testCode()
{
int x=2;
printf("%d",x); //prints 2
}
Run Code Online (Sandbox Code Playgroud) 我得到了答案i = 2.但我的问题是i = 0发生了什么?根据我的理解,i = 0将在DATA SEGMENT中I = 2将在STACK SEGMENT中
#include <stdio.h>
int i = 0;
void main()
{
int i = 2;
printf("i value is %d\n",i);`
}
Run Code Online (Sandbox Code Playgroud)