C 배열의 길이를 얻는 방법

小老鼠
풀어 주다: 2024-05-08 17:54:20
원래의
1172명이 탐색했습니다.

C 언어에서는 배열의 길이를 직접 얻을 수 없지만 간접적으로 얻을 수 있는 방법은 다음과 같습니다. sizeof 연산자를 사용하여 단일 요소의 크기를 나누거나 #define 전처리기 매크로를 사용하여 배열을 정의합니다. 길이; 배열 길이를 계산하기 위해 포인터 연산을 사용합니다. (array_size()와 같은) 동적 배열 라이브러리 함수를 사용합니다.

C 배열의 길이를 얻는 방법

C 배열의 길이를 구하는 방법

C 언어에서 배열은 동일한 유형의 요소가 저장되는 연속적인 메모리 블록입니다. 배열의 크기는 컴파일 타임에 결정되므로 배열 자체에서 직접 길이를 얻을 수 없습니다. 그러나 배열의 길이를 간접적으로 얻는 다음과 같은 방법이 있습니다.

1. sizeof 연산자를 사용합니다.

sizeof연산자는 배열 유형에 필요한 메모리 크기를 바이트 단위로 반환합니다. . 배열의 요소 수를 얻으려면 배열 유형에sizeof연산자를 적용하고 개별 요소의 크기를 나눌 수 있습니다.sizeof运算符返回数组类型所需内存的大小,单位为字节。要获得数组的元素数量,可以将sizeof运算符应用于数组类型除以单个元素的大小:

int main() { int arr[] = {1, 2, 3, 4, 5}; int length = sizeof(arr) / sizeof(arr[0]); printf("数组长度:%d\n", length); return 0; }
로그인 후 복사

2. 使用 预处理器宏

预处理器宏允许您定义一个符号,该符号可以在编译时替换为一个值。您可以使用#define预处理器指令来定义一个宏,其中包含数组的长度:

#define ARRAY_LENGTH 5 int main() { int arr[] = {1, 2, 3, 4, 5}; printf("数组长度:%d\n", ARRAY_LENGTH); return 0; }
로그인 후 복사

3. 使用 指针运算

数组名本质上是一个指向数组第一个元素的指针。因此,您可以使用指针运算来计算数组的长度。具体来说,您可以将数组指针指向最后元素,然后减去指向第一个元素的指针,再除以元素的大小:

int main() { int arr[] = {1, 2, 3, 4, 5}; int *end = &arr[sizeof(arr) / sizeof(arr[0]) - 1]; int length = end - arr + 1; printf("数组长度:%d\n", length); return 0; }
로그인 후 복사

4. 使用 动态数组库函数

一些 C 语言库提供了动态数组库函数,允许您创建和管理动态数组。这些函数通常包含一个获取数组长度的函数,例如array_size()

#include  int main() { int arr[] = {1, 2, 3, 4, 5}; int length = array_size(arr); printf("数组长度:%d\n", length); return 0; }
로그인 후 복사
2 전처리기 매크로 사용 전처리기 매크로. 컴파일 타임에 값으로 대체될 수 있는 기호를 정의합니다. #define전처리기 지시어를 사용하여 배열의 길이를 포함하는 매크로를 정의할 수 있습니다: rrreee3. 포인터 산술 사용 배열 이름은 기본적으로 첫 번째 요소에 대한 포인터입니다. 요소에 대한 배열 포인터입니다. 따라서 포인터 연산을 사용하여 배열의 길이를 계산할 수 있습니다. 특히 배열 포인터가 마지막 요소를 가리킨 다음 첫 번째 요소에 대한 포인터를 빼고 요소의 크기로 나눌 수 있습니다. rrreee4 동적 배열 라이브러리 함수를 사용하세요. 일부 C 라이브러리가 제공합니다. 동적 배열 라이브러리 기능을 사용하면 동적 배열을 생성하고 관리할 수 있습니다. 이러한 함수에는 일반적으로 array_size()함수와 같이 배열의 길이를 가져오는 함수가 포함됩니다. rrreee

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

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