C語言中的合法和非法宣告與初始化


問題

在進行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

    這是一個合法語句,因為這裡我們用常量表達式初始化了一個變數。

  • Double diameter []={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;

更新於: 2021年3月6日

1K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.