문제
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에서 합법 및 불법 선언 및 초기화의 몇 가지 예를 살펴보겠습니다.
예시
-
문자 a=65;
상수로 변수를 초기화할 수 있기 때문에 법적 진술입니다.
-
정적 정수 p=20, q=p*p
정적 변수는 상수로 초기화해야 하기 때문에 잘못된 문장이지만 여기서 q는 상수로 초기화되지 않습니다.
-
더블 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;