>백엔드 개발 >C++ >C 언어의 지정 초기화 프로그램

C 언어의 지정 초기화 프로그램

王林
王林앞으로
2023-09-01 08:49:06909검색

C 언어의 지정 초기화 프로그램

C90 표준에서는 인덱스를 0, 1, 2 위치에서 초기화하는 등 고정된 순서로 배열을 초기화해야 합니다. C99 표준부터 C에 지정된 초기화 기능을 도입했습니다. 여기서는 임의의 순서로 요소를 초기화할 수 있습니다. 초기화는 배열 인덱스나 구조체 멤버를 사용하여 수행할 수 있습니다. 이 확장은 GNU C++에서 구현되지 않습니다.

일부 인덱스를 지정하고 일부 값을 입력하면 다음과 같습니다. -

int arr[6] = {[3] = 20, [5] = 40}; or
int arr[6] = {[3]20, [5]40};

이것은 다음과 같습니다.

int arr[6] = {0, 0, 0, 20, 0, 40};

다음 구문을 사용하여 일부 요소 범위를 넣을 수도 있습니다: [first … last] = value .

int arr[6] = {[2 … 4] = 10};

이것은 다음과 같습니다.

int arr[6] = {0, 0, 10, 10, 10, 0};

배열의 크기가 정의되지 않은 경우 최대 인덱스 위치부터 크기를 얻을 수 있습니다. 더 나은 아이디어를 얻기 위해 코드를 살펴보겠습니다.

예제 코드

#include <stdio.h>
int main() {
   int Array[] = {10, 20, 30, [3 ... 9] = 100, [10] = 65, 15, [80] = 50, [42] = 400 };
   int i;
   for (i = 0; i < 20; i++)
      printf("%d ", Array[i]);
      printf("</p><p>Array[%d] = %d</p><p>",80, Array[80]);
      printf("Array[%d] = %d</p><p>",42, Array[42]);
      printf("Size of this array: %ld</p><p>", sizeof(Array) / sizeof(Array[0]));
}

Output

10 20 30 100 100 100 100 100 100 100 65 15 0 0 0 0 0 0 0 0
Array[80] = 50
Array[42] = 400
Size of this array: 81

이런 지정 초기화는 구조체나 공용체 유형 객체에서도 수행할 수 있습니다. 이를 위해 멤버 변수의 이름을 임의의 순서로 사용하고 시작 부분에 점(.)을 사용하여 변수를 초기화할 수 있습니다. 명확한 아이디어를 얻으려면 아래 코드를 확인하십시오.

예제 코드

#include <stdio.h>
struct myStruct {
   int x;
   float y;
   char z;
};
int main() {
   struct myStruct str1 = {.y = 2.324, .z = &#39;f&#39;, .x = 78};
   struct myStruct str2 = {.z = &#39;r&#39;};
   printf ("x = %d, y = %f, z = %c</p><p>", str1.x, str1.y, str1.z);
   printf ("z = %c</p><p>", str2.z);
}

Output

x = 78, y = 2.324000, z = f
z = r

위 내용은 C 언어의 지정 초기화 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제