C 언어에서 배열을 초기화하는 방법

青灯夜游
풀어 주다: 2023-01-07 11:45:29
원래의
36938명이 탐색했습니다.

방법: 1. 배열을 정의할 때 모든 요소에 초기 값을 할당합니다(예: "int a[5]={1,2,3,4,5}"). 2. 일부에 값을 할당합니다. 요소(예: "int a[5 ]={1,2}") 3. 정의할 때 배열 길이를 지정하지 않고 모든 요소에 초기 값을 직접 할당합니다(예: "int a[]={1, 2,3,4,5}".

C 언어에서 배열을 초기화하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, c99 버전, Dell G3 컴퓨터.

배열 초기화

배열 초기화는 다음 방법을 사용하여 수행할 수 있습니다.

1) 배열을 정의할 때 모든 요소에 초기 값을 할당합니다. 이를 "완전 초기화"라고 합니다. . 예:

int a[5] = {1, 2, 3, 4, 5};
로그인 후 복사
로그인 후 복사

초기화 후 배열 요소의 초기 값을 중괄호 안에 배치하면 a[0]=1 a[2]=3; 3] =4; a[4]=5, 즉 왼쪽에서 오른쪽으로 순서대로 각 요소에 할당됩니다. 초기화 중에 각 요소는 세미콜론이 아닌 쉼표로 구분된다는 점에 유의해야 합니다.

2) 요소의 일부에만 값을 할당할 수 있습니다. 이를 "불완전 초기화"라고 합니다. 예:

int a[5] = {1, 2};
로그인 후 복사

에 의해 정의된 배열 a에는 5개의 요소가 있지만 중괄호 안에는 두 개의 초기 값만 제공됩니다. 이는 처음 두 요소 a[0] 및 a[1]만 초기화된다는 의미입니다. 마지막 세 요소는 모두 초기화되지 않았습니다. 불완전하게 초기화되면 초기화되지 않은 요소는 자동으로 0으로 설정됩니다.

"초기화 완료 안 됨"은 "전혀 초기화되지 않음"과 다르다는 점에 유의하세요. "전혀 초기화되지 않은" 경우, 즉 초기화 없이 "int a[5];"만 정의한 경우 각 요소의 값은 0이 아니며 모든 요소는 가비지 값이 됩니다.

"int a[5]={};"도 쓸 수 없습니다. 중괄호 안에 아무것도 쓰지 않으면 심각한 문법 오류입니다. 중괄호 안에 숫자를 하나 이상 적어야 합니다. 예를 들어, "int a[5]={0};"은 배열을 "지우기" 위한 것입니다. 이때 배열의 각 요소는 0입니다. 또한, 정의된 배열의 길이가 중괄호 안에 제공되는 초기값 개수보다 작은 경우에도 "a[2]={1, 2, 3, 4, 5"와 같은 구문 오류가 발생합니다. };".

3) 배열을 정의할 때 배열의 모든 요소에 초기값을 할당하면 요소의 개수가 이때 이미 결정되어 있으므로 배열의 길이를 지정할 필요가 없습니다. 우리는 프로그래밍할 때 이 방법을 자주 사용합니다. 편리하고 문제가 없으며 요소 수를 계산할 필요가 없고 시스템이 자동으로 공간을 할당하기 때문입니다. 예:

int a[5] = {1, 2, 3, 4, 5};
로그인 후 복사
로그인 후 복사

는 다음과 같이 쓸 수 있습니다.

int a[] = {1, 2, 3, 4, 5};
로그인 후 복사

두 번째 쓰기 방법의 중괄호에는 5개의 숫자가 있으므로 시스템은 자동으로 배열 a의 길이를 5로 정의합니다. 하지만 이는 배열을 정의할 때 배열을 초기화할 때만 작성할 수 있다는 점에 유의하세요. 초기화 없이 배열을 정의한 경우 배열 길이를 생략하면 구문 오류가 발생합니다. 예:

int a[];
로그인 후 복사

그러면 컴파일 중에 오류 메시지가 표시되고 컴파일러는 배열 길이가 지정되지 않았다는 메시지를 표시합니다.

당신을 위해 간단한 프로그램을 작성해 보겠습니다.

# include <stdio.h>
int main(void)
{
    int a[5] = {1, 2, 3, 4, 5};
    int i;
    for (i=0; i<5; ++i)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}
로그인 후 복사

출력 결과는 다음과 같습니다.

1
2
3
4
5
로그인 후 복사

a는 배열의 이름을 나타내고, [5]는 배열에 5개의 요소가 있음을 나타내며, a[0] 및 a[를 사용합니다. 1] , a[2], a[3], a[4] 를 의미합니다. 그리고 중괄호 안의 숫자 1, 2, 3, 4, 5를 각각 변수 a[0], a[1], a[2], a[3], a[4]에 할당합니다. 다시 말하지만, 아래 첨자는 a[1]이 아닌 0, a[0]에서 시작합니다.

scanf를 사용하여 키보드에서 수동으로 배열을 초기화할 수도 있습니다.

# include <stdio.h>
int main(void)
{
    int a[5] = {0};  //数组清零初始化
    int i;
    printf("请输入5个数:");
    for (i=0; i<5; ++i)
    {
        scanf("%d", &a[i] );
    }
    for (i=0; i<5; ++i)
    {
        printf("%d\x20", a[i]);
    }
    printf("\n");
    return 0;
}
로그인 후 복사

출력 결과는 다음과 같습니다.

请输入5个数:1 2 3 4 5
1 2 3 4 5
로그인 후 복사
scanf를 사용하여 문자 배열에 문자열을 입력할 때와 다릅니다. 입력할 for 루프. 문자열을 입력할 때 루프를 사용할 필요가 없으며, scanf를 사용하면 됩니다.

관련 추천: "

C 언어 비디오 튜토리얼"

위 내용은 C 언어에서 배열을 초기화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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