Tag: 变量

C中主要变量的范围

考虑一下代码: #include int x; int main (void) { } main的x值为0 。 但那是为什么呢? 我没有声明它是static 。 或者它是否在函数外部被假定为static ? 如果上述情况属实,它如何使它与extern不同?

local,global,static,auto,register,extern,const,volatile变量存储在哪里?

存储了local,global,static,auto,register,extern,const,volatile变量的位置在哪里?

在定义变量时使用’extern’关键字

看到这个答案后,我有这个疑问。 在我的项目中,我看到了一些外部变量声明和定义如下: file1.h extern int a; 在file1.c extern int a=10; 但在我提到的链接中,它说在c文件中应该定义如下: int a = 10; 在定义期间添加extern关键字是否也有任何目的/意义。 或者重要的是顺便说一下?

调用者看不到函数的变量?

是的,我知道这听起来很傻但我不知道我做错了什么! 该function是扑克游戏的一部分,其中有10个function,每个function都检查特定的扑克牌。 如果激活,该function将打印“玩家1有满屋!”这一行。 或者无论手是什么。 但是,我还需要增加p1的值,其中p1是一个全局变量,它保持p1的总分。 打印线条可以很好地工作,但是当我想要将值10分配给p1时,它根本就不会分配。 在下面的示例中,printfs应该完美地工作,但px不分配。 我甚至在每个函数后立即打印了px的值,它仍然打印0。 void checkForPoker(int j, int px) //j is the player’s number, px is the player’s scoreholder { if ((c1==c2 && c2==c3 && c3==c4) || (c1==c2 && c2==c3 && c3==c5) || (c1==c2 && c2==c4 && c4==c5) || (c1==c3 && c3==c4 && c4==c5)) { printf(“\n\nEl Jugador %d tiene un poker […]

c语言中的隐式int

我正在使用orwell dev c ++ IDE。 我知道在旧的C89标准和预标准C ++中,当函数定义中没有明确指定函数的返回类型时,它支持默认的int规则。 但它已在C ++中被禁止。 但最近我写了以下简单的C程序,它工作正常。 #include void fun(); int main(void) { int a=9; printf(“%d”,a); printf(“%d”,a); fun(); return 0; } a=1; void fun() { printf(“%d”,a); } 默认的int规则是否也适用于变量? 我的编译器向我显示以下警告。 [Warning] data definition has no type or storage class [enabled by default] [Warning] type defaults to ‘int’ in declaration of ‘a’ [enabled by […]

自动初始化局部变量

我有以下代码片段。 int j; printf(“%d”,j); 正如所料,我得到了垃圾值。 32039491 但是当我在上面的代码片段中包含一个循环时,就像 int j; print(“%d”,j); while(j); 我在该程序的多次试验中得到以下输出。 0 我一直认为局部变量默认初始化为垃圾值,但看起来变量在使用循环时会自动初始化。

‘全球’和’静态全球’之间的区别

全局变量的范围在所有文件中,而静态全局变量的范围只是声明它的文件。 为什么这样? 全局或静态全局变量存储在内存中的哪个位置?

变量被遮蔽时收到警告

我通常想避免这样的代码: #include int main(int argc, char *argv[]){ int n = 3; for (int n = 1; n <= 10; n++){ printf("%d\n", n); } printf("%d\n", n); } 我怎样才能找到变量的这种用法? 这意味着,在同一函数中,“更本地”变量与更全局变量具有相同的名称? C标准:C 99

C中%g和%f的区别是什么?

我正在通过K&R的C编程语言。 这里是一个打印双变量的语句,它是写的 printf(“\t%g\n”, sum += atof(line)); 其中sum被声明为double。 任何人都可以帮我解决何时使用%g的情况下双倍或浮动的情况,以及%g和%f之间的差异。

如何在系统识别的不同function中使用相同名称的静态变量?

AFAIK,我们可以在不同的函数中有两个同名的静态变量吗? 这些如何由编译器和符号表管理? 他们的身份如何单独管理?