C 中合法和非法的声明和初始化
问题
在进行C编程时提到一些合法和非法的声明和初始化?
在讨论合法和非法语句之前,让我们看看如何在C中声明和初始化变量。
变量声明
以下是变量声明的语法-
语法
Datatype v1,v2,… vn;
其中v1、v2、...vn是变量的名称。
例如,intsum;
float a,b;
变量可以通过两种方式声明-
本地声明
全球宣言
“局部声明”在主块内声明一个变量,其值在该块内可用。
“全局声明”在主块之外声明一个变量,它的值在整个程序中都是可用的。
例如,
int a, b; /* global declaration*/ main ( ){ int c; /* local declaration*/ - - - }
变量初始化
以下是变量初始化的语法-
语法
Datatype v1=number;
例如,
int sum=0; float a=1,b=4.5;
使用数据类型声明变量,我们可以在声明时初始化值。因此,在初始化和声明值时,我们需要遵循规则
让我们看看C中合法和非法声明和初始化的一些例子。
例子
字符a=65;
这是一个合法的声明,因为我们可以用一个常量来初始化一个变量。
静态整数p=20,q=p*p
这是一个非法语句,因为静态变量必须用常量初始化,但这里q没有用常量初始化。
双x=30*PI
这是一个合法的声明,因为这里我们用常量表达式初始化了一个变量。
双倍直径[]={1,PI/2,PI,2*PI/2}
这是一个合法的声明,这里我们用常量初始化数组元素。
示例程序
带有法律声明和初始化 -
#include输出结果void main ( ){ int a,b; a= 10, b = 20; printf (" %d", ab); printf (" %d", a>=b); printf (" %d", a = =b); printf (" %d", a ! =b); }
1 1 0 0 0 1
示例
非法声明和初始化-
#include输出结果int main(){ static int p=20, q=p*p;//非法初始化 printf("%d%d",p,q); return 0; }
error will be occurred error: initializer element is not constant static int p=20, q=p*p;