C 언어 변수의 정의에는 변수 저장 유형과 변수가 포함되어 있습니까?

青灯夜游
풀어 주다: 2020-07-27 14:39:45
원래의
4918명이 탐색했습니다.

C 언어 변수의 정의에는 변수 저장 유형과 변수 이름이 포함됩니다. C 언어에서 변수를 정의하는 형식은 "데이터 유형 변수 이름", "데이터 유형"은 저장하려는 데이터 유형을 나타내고 "변수 이름"은 변수에 부여하려는 이름으로 일반적으로 문자를 사용합니다.

C 언어 변수의 정의에는 변수 저장 유형과 변수가 포함되어 있습니까?

변수 정의

변수 정의 형식은 아래와 같이 매우 간단합니다.

数据类型  变量名;
로그인 후 복사

먼저 강조할 점은 마지막 세미콜론을 잃지 마세요. 변수의 정의는 서술문입니다. 앞서 말했듯이 서술문은 세미콜론으로 끝납니다.

"데이터 유형"은 저장하려는 변수 유형을 정의하는 것을 의미합니다. 정수를 저장하려면 int 유형으로 정의하고, 소수를 저장하려면 float 또는 double 유형으로 정의하고, 문자를 저장하려면 char 유형으로 정의하십시오...

"변수 이름"은 이 변수에 부여할 이름은 무엇입니까? 일반적으로 문자를 사용합니다. 예를 들어

int i;
로그인 후 복사

는 정수 변수 i가 정의되었음을 의미합니다.

변수 이름 명명 규칙

변수를 정의할 때 변수 이름은 문자, 숫자, 밑줄의 조합일 수 있습니다. 단, 무작위 조합은 아닙니다. 다음 명명 규칙에 주의하세요.

1) 변수 이름의 시작은 숫자가 아닌 문자나 밑줄이어야 합니다. 실제 프로그래밍에서 가장 일반적으로 사용되는 이름은 문자로 시작하는 반면 밑줄로 시작하는 변수 이름은 시스템마다 다릅니다.

헤더 파일을 무작위로 열면 그 안의 모든 변수 이름, 매크로 이름, 함수 이름이 모두 밑줄로 시작하는 것을 볼 수 있습니다.

따라서 시스템 정의 이름과의 충돌을 피하기 위해 프로그래밍할 때 이런 방식으로 정의해야 하는 경우가 아니면 변수 이름의 시작 부분에 밑줄을 사용하지 마세요.

2) 변수 이름의 문자는 대소문자를 구분합니다. 예를 들어 a와 A는 다른 변수 이름이고, num과 Num도 다른 변수 이름입니다.

3) 변수 이름은 C 언어 키워드가 아니어야 한다는 점 꼭 기억해두세요!

4) 변수 이름에는 공백을 사용할 수 없습니다. 이는 다음과 같이 이해될 수 있습니다. 위에서 말했듯이 변수 이름은 공백 없이 문자, 숫자, 밑줄의 조합입니다.

변수 할당

그럼 변수를 정의한 후 변수에 숫자를 어떻게 넣나요? 가장 먼저 이해해야 할 것은 변수에 숫자를 넣는 것을 "할당"이라고 한다는 것입니다. "할당"은 "주다"를 의미하므로 "변수에 값을 할당"한다는 것은 값을 변수에 전달하는 것을 의미합니다. 그렇다면 가치를 어떻게 할당할 것인가? 대입 연산자 =를 통해서 이루어지며, 대입 형식은

变量名 =  要赋的值;
로그인 후 복사

=의 오른쪽에 있는 숫자를 왼쪽의 변수에 대입한다는 의미입니다. 예:

i = 3;
로그인 후 복사

이는 변수 i에 3이 할당되고 i는 3과 같음을 의미합니다.

여기서 =는 수학의 "등호"와 다르다는 점에 유의해야 합니다. 처음 C언어를 배우기 시작하면 이쯤 되면 누구나 수학적 사고에서 벗어나기 어렵습니다. C 언어에서 =는 할당을 의미합니다. 즉, 왼쪽 변수가 오른쪽 값과 동일하지 않고 오른쪽 값을 왼쪽 변수에 할당하는 것입니다.

그럼 C언어에는 같음을 표현하는 연산자가 있나요? 이것은 이중 등호 ==입니다. 이 연산자는 수학에서 "같음"과 같은 의미를 갖습니다.

위는 변수의 정의와 할당으로, 2단계로 작성됩니다. 하나의 단계로 결합하는 것도 가능하며, 실제로 2개를 하나로 결합하는 것은 실제 프로그래밍에서 가장 많이 사용되는 방법이다. 그럼 어떻게 합치나요? 매우 간단하며 형식은 다음과 같습니다.

데이터 유형 변수 이름 = 할당할 값

예:

int i = 3;
로그인 후 복사

는 변수 i가 정의되고 이 변수에 3이 할당된다는 의미입니다.

int i;
i =3;
로그인 후 복사

와 동일합니다.

변수를 정의할 때 다음과 같이 여러 변수를 한 번에 정의할 수도 있습니다.

int i, j;
로그인 후 복사

이는 변수 i와 j가 정의된다는 의미입니다. 여기서 강조할 점은 여러 개의 변수를 동시에 정의할 경우 변수를 쉼표로 구분하고 세미콜론으로 표기하면 안 된다는 점이다. 이것은 많은 초보자들이 저지르는 가장 흔한 실수로, 쉼표와 세미콜론을 혼합하는 것입니다.

여러 변수를 정의하고 동시에 값을 할당할 수도 있습니다.

int i = 3, j = 4;
로그인 후 복사

여전히 쉼표로 구분하고 끝에 세미콜론을 입력하는 것을 잊지 마세요.

마지막으로, 이전 C89/C90 표준(ANSI C 표준이라고도 함)에서는 변수를 프로그램 시작 부분에서만 정의할 수 있거나 다른 비선언 또는 비정의가 있을 수 없다는 점에 유의해야 합니다. 변수 정의 앞에 있는 명령문입니다. 예를 들어 C 언어에서는 다음 쓰기 방법이 잘못되었습니다.

# include <stdio.h>
int main(void)
{
    int i;
    i = 3;
    int j = 4;  //这句是错误的,因为在它前面有一个给变量i赋值的非定义语句
    return 0;
}
로그인 후 복사

VC++ 6.0 또는 VS2010에서 컴파일할 때 다음 오류가 표시됩니다.

error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
로그인 후 복사

그런데 이 쓰기 방법은 .cpp 파일(C++ 소스 파일)에 있습니다. 예, 변수는 프로그램의 .cpp 파일 어디에서나 정의할 수 있습니다.

사실 이는 언어 자체와는 아무런 관련이 없습니다. C 언어의 변수를 프로그램 중간에 정의할 수 없다는 의미는 아닙니다. 이는 실제로 표준과 관련이 있습니다. 일부 컴파일러는 C89 표준을 사용하므로 C89 표준에서는 모든 선언(예: 함수 선언, 변수 정의)을 프로그램, 함수 또는 복합 명령문의 시작 부분에 작성해야 합니다. C99의 "먼저 선언하고 나중에 사용" 원칙을 따르는 한 명령문과 선언은 순서에 관계없이 허용됩니다.

VC++ 6.0과 VS2010은 C89 표준을 따르거나 C99 표준을 완전히 지원할 수 없기 때문에 프로그램 중간에 변수를 정의하는 것을 허용하지 않으며 Linux의 GCC 컴파일러는 C99 표준을 따르므로 또한 .c C 언어로 작성된 파일은 사용 위치 이전에 있는 한 프로그램의 어느 위치에서나 변수를 정의할 수 있습니다.

사실 C99 표준이 더 좋습니다. 필요할 때만 변수를 정의하므로 수명 주기가 단축되고 메모리가 절약됩니다. 변수가 정의되어 있는 한 시스템은 이를 위해 메모리 공간을 할당하기 때문에 앞서 정의했지만 끝까지 사용하지 않으면 사용될 때까지 메모리를 차지하게 되어 다소 낭비가 됩니다.

그러나 그럼에도 불구하고 모든 사람은 프로그래밍할 때 C89 표준에 따라 작성하도록 노력해야 합니다. C99 표준을 완벽하게 지원하는 컴파일러라도 프로그램 중간에는 선언을 작성하지 않는 것이 가장 좋습니다. C89는 오랫동안 사용되었기 때문에 여전히 주류이며 많은 컴파일러는 여전히 C89 표준만 지원하거나 C99 표준을 제대로 지원하지 못합니다. 따라서 C89 표준에 따라 작성하는 것이 이식성이 더 좋습니다.

위에서 언급한 "복합문", 복합문에서도 변수를 정의할 수 있습니다. 소위 서술문은 세미콜론으로 끝나며, 복합문은 여러 개의 서술문을 결합한 서술문입니다. C 언어에서는 중괄호 { }로 묶인 여러 명령문을 복합 명령문이라고 합니다.

복합문은 특히 프로세스 제어에 사용됩니다. 예를 들어 나중에 배우게 될 if, for, while 뒤에는 일반적으로 복합문이옵니다. 이때, 이러한 복합문에서도 변수를 정의할 수 있지만, 처음에만 정의할 수 있습니다. 주 함수 main도 중괄호로 묶여 있으므로 주 함수 main 아래의 함수 본문은 본질적으로 복합 문, 즉 큰 복합 문입니다.

그래서 여전히 공통점이 있습니다. 즉, C 언어에서는 중괄호 { }로 묶어두기만 하면 변수를 처음에 정의할 수 있습니다. 그리고 중괄호 안에 정의된 변수를 지역변수라고 합니다. 또한 전역 변수라고 하는 중괄호 외부에서 변수를 정의할 수도 있습니다.

추천: "c 언어 튜토리얼"

위 내용은 C 언어 변수의 정의에는 변수 저장 유형과 변수가 포함되어 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!