ホームページ  >  記事  >  バックエンド開発  >  C配列の長さを取得する方法

C配列の長さを取得する方法

小老鼠
小老鼠オリジナル
2024-05-08 17:54:201215ブラウズ

C言語では配列の長さを直接取得することはできませんが、間接的に取得するには次の方法があります: sizeof演算子を使用して単一要素のサイズを分割する; #defineプリプロセッサマクロを使用して配列を定義するlength; ポインタ算術を使用して配列の長さを計算します。; 動的配列ライブラリ関数 (array_size() など) を使用します。

C配列の長さを取得する方法

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>
🎜2. プリプロセッサ マクロの使用🎜🎜🎜プリプロセッサ マクロコンパイル時に値に置き換えられるシンボルを定義できます。 #define プリプロセッサ ディレクティブを使用して、配列の長さを含むマクロを定義できます: 🎜rrreee🎜🎜3. ポインター演算の使用🎜🎜🎜 配列名は基本的に最初の要素へのポインターです。配列の要素へのポインタ。したがって、ポインター算術を使用して配列の長さを計算できます。具体的には、配列ポインターを最後の要素にポイントし、最初の要素へのポインターを減算し、要素のサイズで割ることができます: 🎜rrreee🎜🎜4. 動的配列ライブラリ関数を使用します🎜🎜🎜一部の C ライブラリは、動的配列ライブラリ関数を使用すると、動的配列を作成および管理できます。これらの関数には通常、array_size() 関数など、配列の長さを取得する関数が含まれています。

以上がC配列の長さを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。