ホームページ >バックエンド開発 >C#.Net チュートリアル >C言語で配列の長さを取得する方法

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

hzc
hzcオリジナル
2020-07-03 13:32:275970ブラウズ

C言語では、配列を定義した後、sizeofコマンドを使用して配列の長さ[収容できる要素数]を取得できますが、配列の長さを取得することはできません。配列名パラメータをサブ関数に渡すことによって。

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

C言語では、配列を定義した後、sizeofコマンドを使用することで配列の長さ(収容できる要素の数)を取得できます。

例:

{
int data[4];
int length;
length=sizeof(data)/sizeof(data[0]);  //数组占内存总空间,除以单个元素占内存空间大小
printf("length of data[4]=%d", length ); //输出length of data[4]=4
}

配列名パラメーターをサブ関数に渡して配列の長さを取得することは現実的ではありません。例:

int getLength(int[] a){
    int length;
    length=sizeof(a)/sizeof(a[0]); //这样是错误的,得到的结果永远是1
    return length;
}

因为,a是函数参数,到了本函数中,a只是一个指针(地址,系统在本函数运行时,是不知道a所表示的地址有多大的数据存储空间,
这里只是告诉函数:一个数据存储空间首地址),所以,sizoef(a)的结果是指针变量a占内存的大小,一般在32位机上是4个字节。
a[0]是int类型,sizeof(a[0])也是4个字节,所以,结果永远是1。

したがって、配列の長さを取得するには、配列が定義されているコード領域で上記のメソッドを使用することによってのみ効果が得られます。

推奨チュートリアル: 「c 言語チュートリアル

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

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