C言語では配列の長さを直接取得することはできませんが、間接的に取得するには次の方法があります: sizeof演算子を使用して単一要素のサイズを分割する; #defineプリプロセッサマクロを使用して配列を定義するlength; ポインタ算術を使用して配列の長さを計算します。; 動的配列ライブラリ関数 (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()
関数など、配列の長さを取得する関数が含まれています。以上がC配列の長さを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。