>일반적인 문제 >배열의 요소는 서로 다른 데이터 유형일 수 있나요?

배열의 요소는 서로 다른 데이터 유형일 수 있나요?

青灯夜游
青灯夜游원래의
2021-01-30 17:19:3424723검색

아니요, 배열에 있는 각 요소의 데이터 유형은 동일합니다. 배열은 순서가 지정된 데이터의 모음인 일반적으로 사용되는 데이터 구조입니다. 배열의 각 요소는 동일한 데이터 유형을 가지며, 통합된 배열 이름과 아래 첨자를 사용하여 배열의 요소를 고유하게 식별할 수 있습니다.

배열의 요소는 서로 다른 데이터 유형일 수 있나요?

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

아니요, 배열에 있는 각 요소의 데이터 유형은 동일합니다.

배열의 개념과 정의

우리는 데이터를 메모리에 넣기 위해서는 먼저 메모리 공간을 할당해야 한다는 것을 알고 있습니다. 4개의 정수를 넣으면 4개의 int형 메모리 공간을 할당해야 합니다:

int a[4];

이렇게 하면 4개의 int형 메모리 공간이 메모리에 할당되며 총 4×4=16바이트가 되고 시작하여 이름을 얻었고, 이라고 불렀다.

우리는 이러한 데이터 집합을 배열(Array)이라고 부르고, 포함된 각 데이터를 배열 요소(Element)라고 하며, 포함된 데이터의 수를 int a [4]와 같이 배열 길이(Length)라고 합니다. ; a라는 이름의 길이 4의 정수 배열을 정의합니다.

배열의 각 요소에는 일련번호가 있습니다. 이 일련번호는 익숙한 1이 아닌 0부터 시작하며 인덱스라고 합니다. 배열 요소를 사용할 때 다음 형식으로 아래 첨자를 지정하면 됩니다.

arrayName[index]

arrayName은 배열 이름이고 index는 아래 첨자입니다. 예를 들어, a[0]은 0번째 요소를 나타내고, a[3]은 3번째 요소를 나타냅니다.

다음으로 첫 번째 행의 정수 4개를 배열에 넣습니다.

a[0]=20;
a[1]=345;
a[2]=700;
a[3]=22;

여기서 0, 1, 2, 3은 배열 첨자 a[0], a[1], a[2], a입니다. [3]은 배열 요소입니다.

학습 과정에서 우리는 종종 루프 구조를 사용하여 데이터를 배열에 넣은 다음(즉, 배열 요소에 값을 하나씩 할당) 루프 구조를 사용하여 출력(즉, 값을 읽습니다) 아래에서는 1부터 10까지의 10개의 숫자를 배열에 넣는 방법을 보여드리겠습니다.

#include <stdio.h>
int main(){
    int nums[10];
    int i;
   
    //将1~10放入数组中
    for(i=0; i<10; i++){
        nums[i] = (i+1);
    }
   
    //依次输出数组元素
    for(i=0; i<10; i++){
        printf("%d ", nums[i]);
    }
   
    return 0;
}

실행 결과:

1 2 3 4 5 6 7 8 9 10

변수 i는 둘 다 배열 첨자이자 루프 조건입니다. 루프 조건으로 마지막 요소에 도달하면 사이클을 종료하면 됩니다. 배열 nums의 최대 첨자는 9이며 이는 10을 초과할 수 없음을 의미하므로 루프 조건은 i

사용자가 10개의 숫자를 입력하고 배열에 넣을 수 있도록 위 코드를 변경하세요:

#include <stdio.h>
int main(){
    int nums[10];
    int i;
   
    //从控制台读取用户输入
    for(i=0; i<10; i++){
        scanf("%d", &nums[i]);  //注意取地址符 &,不要遗忘哦
    }
   
    //依次输出数组元素
    for(i=0; i<10; i++){
        printf("%d ", nums[i]);
    }
   
    return 0;
}

실행 결과:

22 18 928 5 4 82 30 10 666 888↙
22 18 928 5 4 82 30 10 666 888

코드의 8번째 줄에서 scanf()는 데이터를 읽을 때 주소가 필요합니다(주소는 데이터 저장 위치를 ​​지정하는 데 사용됨), nums[i]는 특정 배열 요소를 나타내므로 주소를 얻으려면 앞에 &를 추가해야 합니다.

마지막으로 배열이 정의되는 방식을 요약해 보겠습니다.

dataType  arrayName[length];

dataType은 데이터 유형이고 arrayName은 배열 이름, length는 배열 길이입니다. 예:

float m[12];  //定义一个长度为 12 的浮点型数组
char ch[9];  //定义一个长度为 9 的字符型数组

다음 사항에 유의해야 합니다.

1) 배열에 있는 각 요소의 데이터 유형은 동일해야 합니다. int a[4];의 경우 각 요소는 int여야 합니다.

2) 길이에 n, 4*m과 같은 변수가 포함된 경우 모든 컴파일러에서 실행될 수 있도록 배열의 길이는 정수 또는 10, 20*4 등과 같은 상수 표현식인 것이 좋습니다. 등, 일부 컴파일러에서는 오류가 보고됩니다. 이에 대해서는 "C 언어의 가변 길이 배열: 변수를 사용하여 배열 길이 지정" 섹션에서 구체적으로 설명하겠습니다.

3) 배열 요소에 접근할 때 첨자의 값 범위는 0 ≤ index < length입니다. 너무 크거나 너무 작으면 경계를 넘어 배열이 오버플로되고 예측할 수 없는 상황이 발생합니다. 이것은 "C 언어 배열이 범위를 벗어났습니다" 섹션에서 논의에 중점을 두고 있습니다. 주의하시기 바랍니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !

위 내용은 배열의 요소는 서로 다른 데이터 유형일 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.