C 언어에서는 배열의 길이를 직접 얻을 수 없지만 간접적으로 얻을 수 있는 방법은 다음과 같습니다. sizeof 연산자를 사용하여 단일 요소의 크기를 나누거나 #define 전처리기 매크로를 사용하여 배열을 정의합니다. 길이; 배열 길이를 계산하기 위해 포인터 연산을 사용합니다. (array_size()와 같은) 동적 배열 라이브러리 함수를 사용합니다.
C 배열의 길이를 구하는 방법
C 언어에서 배열은 동일한 유형의 요소가 저장되는 연속적인 메모리 블록입니다. 배열의 크기는 컴파일 타임에 결정되므로 배열 자체에서 직접 길이를 얻을 수 없습니다. 그러나 배열의 길이를 간접적으로 얻는 다음과 같은 방법이 있습니다.
1. sizeof 연산자를 사용합니다.
sizeof
연산자는 배열 유형에 필요한 메모리 크기를 바이트 단위로 반환합니다. . 배열의 요소 수를 얻으려면 배열 유형에 sizeof
연산자를 적용하고 개별 요소의 크기를 나눌 수 있습니다. sizeof
运算符返回数组类型所需内存的大小,单位为字节。要获得数组的元素数量,可以将 sizeof
运算符应用于数组类型除以单个元素的大小:
<code class="c">int main() { int arr[] = {1, 2, 3, 4, 5}; int length = sizeof(arr) / sizeof(arr[0]); printf("数组长度:%d\n", length); return 0; }</code>
2. 使用 预处理器宏
预处理器宏允许您定义一个符号,该符号可以在编译时替换为一个值。您可以使用 #define
预处理器指令来定义一个宏,其中包含数组的长度:
<code class="c">#define ARRAY_LENGTH 5 int main() { int arr[] = {1, 2, 3, 4, 5}; printf("数组长度:%d\n", ARRAY_LENGTH); return 0; }</code>
3. 使用 指针运算
数组名本质上是一个指向数组第一个元素的指针。因此,您可以使用指针运算来计算数组的长度。具体来说,您可以将数组指针指向最后元素,然后减去指向第一个元素的指针,再除以元素的大小:
<code class="c">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; }</code>
4. 使用 动态数组库函数
一些 C 语言库提供了动态数组库函数,允许您创建和管理动态数组。这些函数通常包含一个获取数组长度的函数,例如 array_size()
<code class="c">#include <array.h> int main() { int arr[] = {1, 2, 3, 4, 5}; int length = array_size(arr); printf("数组长度:%d\n", length); return 0; }</code>
#define
전처리기 지시어를 사용하여 배열의 길이를 포함하는 매크로를 정의할 수 있습니다: 🎜rrreee🎜🎜3. 포인터 산술 사용 🎜🎜🎜배열 이름은 기본적으로 첫 번째 요소에 대한 포인터입니다. 요소에 대한 배열 포인터입니다. 따라서 포인터 연산을 사용하여 배열의 길이를 계산할 수 있습니다. 특히 배열 포인터가 마지막 요소를 가리킨 다음 첫 번째 요소에 대한 포인터를 빼고 요소의 크기로 나눌 수 있습니다. 🎜rrreee🎜🎜4 동적 배열 라이브러리 함수를 사용하세요. 🎜🎜🎜일부 C 라이브러리가 제공합니다. 동적 배열 라이브러리 기능을 사용하면 동적 배열을 생성하고 관리할 수 있습니다. 이러한 함수에는 일반적으로 array_size()
함수와 같이 배열의 길이를 가져오는 함수가 포함됩니다. 🎜rrreee위 내용은 C 배열의 길이를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!