지식 포인트 1: 변수와 상수
1) 프로그램이 실행되는 전체 과정에서 변하지 않고 변할 수 없는 것을 상수라고 합니다 .
2) 프로그램이 실행되는 동안 변경될 수 있고 변경될 수 있는 것을 변수 라고 합니다 .
지식 포인트 2: 변수 선언
short s;
int n;
long l;
float f;
double d;
1) 변수 선언 수식: 유형 + 식별자 + 세미콜론
2) 식별자(Identifier): 변수, 함수, 기타 엔터티의 이름을 나타내는 데 사용되는 자체 이름의 식별자입니다 . 예를 들어, 위 코드에서 s, n, l, f, d는 변수를 나타내기 위해 스스로 명명한 식별자입니다.
3) 키워드: 어휘는 언어 표준에 명시되어 있으며 코드에서 특별한 의미와 용도를 가지고 있습니다 . 예를 들어 short, int, long, float, double은 모두 변수의 유형을 나타내며 언어 표준에서 제공하는 어휘입니다.
4) 식별자는 컴파일러가 인식하기 전에 선언하거나 정의해야 하지만 키워드는 직접 사용할 수 있습니다 .
5) 따라서 컴파일러가 식별자를 변수로 간주하기 위해서는 사용하기 전에 식별자를 변수로 선언해야 합니다.
예: a) 맞습니다. 변수는 사용하기 전에 선언됩니다.
#include <stdio.h>
int main()
{
int a;
printf("%d\n", a); // 正确, 变量使用前被声明了。
return 0;
}
b) 오류, 변수 a가 선언되지 않았습니다.
#include <stdio.h>
int main()
{
printf("%d\n", a); // 错误, 变量未声明。
return 0;
}
c) 오류, 변수 a가 선언 전에 사용되었습니다.
#include <stdio.h>
int main()
{
printf("%d\n", a); // 错误, 变量在声明前使用。
int a;
return 0;
}
지식 포인트 3: 변수 이름 명명 규칙
1) 변수 이름은 식별자이므로 변수 이름은 식별자 명명 규칙을 따라야 합니다.
2) 식별자 명명 규칙: 식별자는 대문자와 소문자, 숫자, 밑줄로 구성됩니다. 식별자는 숫자로 시작할 수 없으며 기존 키워드와 달라야 합니다 .
short apple; //正确
int 88fruit; //错误,不能以数字开头
long _pencil; //正确,可以以下换线或字母开头
float love_you; //正确,字母开头,标识符可以使用下划线
double int; //错误,不能与现有关键词相同
지식 포인트 4: 변수 초기화 및 할당
1) 할당을 통해서만 변수의 세 번째 요소(변수의 값)가 의미를 가질 수 있습니다.
2) 변수 할당에는 할당 연산자 "="가 필요합니다.
3) 변수에 값을 할당하는 방법은 두 가지가 있습니다. 변수는 선언 직후 초기화됩니다. 두 번째 변수가 먼저 선언된 다음 변수에 값이 할당됩니다.
a) 선언 후 즉시 변수 초기화
#include <stdio.h>
int main()
{
int a = 100; // 变量声明后,立即装入100。
printf("%d\n", a);
return 0;
}
b) 변수가 선언된 후에는 초기화되지 않습니다. 할당 연산자를 사용한 후속 할당
#include <stdio.h>
int main()
{
int a; // 变量声明后,为一个随机值
a = 100; // 这里我们使用赋值运算符,将100给了a。
printf("%d\n", a);
return 0;
}
지식 포인트 5: 초기화와 할당의 차이점
1) 과제:
a = 100;
할당 연산자의 왼쪽은 선언된 변수이고 오른쪽은 숫자 값입니다. 이 작성 방법은 변수에 값을 할당하는 것입니다.
2) 초기화:
int a = 100;
할당 연산자의 왼쪽은 변수 선언, 오른쪽은 숫자 값으로, 이렇게 작성하면 변수를 선언하고 초기화합니다.
3) 변수는 여러 번 할당할 수 있지만 초기화는 여러 번 할 수 없습니다. 다중 초기화는 변수 a를 두 번 선언하는 것과 같습니다. 변수 a를 두 번째 선언할 때 컴파일러는 식별자 a가 이미 사용되었음을 확인하고 컴파일 오류를 보고합니다.
#include <stdio.h>
int main()
{
int a;
a = 100;
printf("%d\n", a);
a = 200;
printf("%d\n", a);
return 0;
}
正确;输出结果为100,200
#include <stdio.h>
int main()
{
int a;
a = 100;
printf("%d\n", a);
int a = 200;
printf("%d\n", a);
return 0;
}
错误:变量a被重复声明
지식 포인트 6: 상수
1) 상수는 처음부터 코드에 하드 코딩되어 변경할 수 없는 프로그램의 수량입니다.
2) 리터럴 상수: 예: 100, 200, 1.3344, "HelloWorld", "I love motherland"를 리터럴 상수라고 합니다.
a) 리터럴 상수는 선언할 필요가 없으며 컴파일러는 작성 방법에 따라 해당 유형을 즉시 결정할 수 있습니다.
100 = 101; //错误,常量不能被更改
100 = a; //错误,常量不能被更改
b) 큰따옴표로 묶인 것을 문자열 리터럴이라고 합니다.
"HelloWorld" //正确
"HelloWorld" = "你好"; //错误,常量不能被更改
3) 리터럴 상수 유형:
a) 변수의 유형은 선언 시 결정됩니다. 상수의 유형은 코드에 상수를 작성할 때 결정될 수도 있습니다.
b) 정수 리터럴 상수는 일반적으로 int 유형입니다. 정수 리터럴 상수의 값이 너무 크거나 int 유형의 범위를 초과하지 않는 한, 컴파일러는 이를 unsigned int 유형으로 처리하려고 시도합니다. 더 큰 경우에는 long, unsigned long, longgned long long과 같은 더 넓은 범위의 정수 유형으로 추론됩니다.
c) 소수가 포함된 리터럴 상수는 double 유형입니다.
4) 기호 상수:
a) 기호 상수를 정의하는 공식:
#define 符号常量 值
예: 현재 3위안인 제품 가격이 있습니다. 이제 이 제품 10개의 가격을 계산해야 합니다.
#include <stdio.h>
# define PRICE 3
int main()
{
int num = 10;
int total;
total = num * PRICE;
printf("total:%d", total);
return 0;
}
num * 3을 직접 쓰지 않고 기호 상수 PRICE를 정의했습니다. 어느 날 이 상품의 가격이 변하면 상품 가격을 기호 상수로 정의하므로 이 기호 상수가 나타내는 값만 수정하면 됩니다.