首页 > 文章列表 > 在C语言中,合法和非法的声明和初始化

在C语言中,合法和非法的声明和初始化

初始化 合法声明 非法声明
405 2023-09-03

问题

在进行C编程时,提到一些合法和非法的声明和初始化?

在讨论合法和非法的声明和初始化之前,我们先看看如何声明和初始化C 中的变量。

变量声明

以下是变量声明的语法 -

语法

Datatype v1,v2,… vn;

其中 v1、v2、...vn 是变量的名称。

例如,int sum;

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 中合法和非法声明和初始化的一些示例。

示例

  • Char a=65;

    这是一个合法的语句,因为我们可以用常量初始化变量。

  • Static int p=20, q=p*p

    这是一条非法语句,因为静态变量必须用常量初始化,但这里 q 没有初始化

  • Double x=30 *PI

    这是一个合法的语句,因为这里我们用常量表达式初始化了一个变量。

  • 双径[]={1,PI/2, PI, 2*PI/2}

    这是一个合法的语句,这里我们初始化数组元素为常量。

示例程序

带有合法声明和初始化

 现场演示

#include<stdio.h>
void main ( ){
   int a,b;
   a= 10, b = 20;
   printf (" %d", a<b);
   printf (" %d", a<=b);
   printf (" %d", a>b);
   printf (" %d", a>=b);
   printf (" %d", a = =b);
   printf (" %d", a ! =b);
}

输出

1 1 0 0 0 1

示例

非法声明和初始化 -

#include <stdio.h>
int main(){
   static int p=20, q=p*p;//illegal initialization
   printf("%d%d",p,q);
   return 0;
}

输出

error will be occurred
error: initializer element is not constant
   static int p=20, q=p*p;