C中获取数组元素个数

180it 2020-10-11 AM 1502℃ 0条
 #include <iostream>
using namespace std;

int a[] = {1, 2, 3};

int main()
{
    int b[] = {1, 2, 3};
    cout << sizeof(a) / sizeof(int) << endl;    // 3
    cout << sizeof(b) / sizeof(b[0]) << endl;    // 3
    return 0;
}



(1)全局变量数组
一般ACM比赛用这样。

#include <iostream>
using namespace std;

int a[] = {1, 2, 3};

void func()
{
    cout << sizeof(a) / sizeof(int) << endl;  // 3
    cout << sizeof(a) / sizeof(a[0]) << endl; // 3
}

int main()
{
    func();
    return 0;
}

(2)增加一个参数length
一般排序算法就采用这样的形式。

#include <iostream>
using namespace std;

void func(int a[], int length) {}

int main()
{
    int a[] = {1, 2, 3};
    int length = sizeof(a) / sizeof(a[0]);
    // int length = sizeof(a) / sizeof(int);
    func(a, length);
    return 0;
}

(3)全局变量length
记得在数组的相关部分初始化全局变量length

#include <iostream>
using namespace std;

int length;

void func(int a[]) {}

int main()
{
    int a[] = {1, 2, 3};
    length = sizeof(a) / sizeof(a[0]);
    // length = sizeof(a) / sizeof(int);
    func(a);
    return 0;
}



 #include <stdio.h>
    
    int main ()
    {
        int n[ 10 ]; /* n 是一个包含 10 个整数的数组 */
        int i,j;
    
        /* 初始化数组元素 */
        for ( i = 0; i < 10; i++ )
        {
            n[ i ] = i + 100; /* 设置元素 i 为 i + 100 */
        }
    
    //获取数组 n[] 元素得个数
       int sznum;
        sznum=sizeof(n)/sizeof(n[0]);
        printf("num[%d]\n", sznum );
    
        /* 输出数组中每个元素的值 */
        for (j = 0; j < 10; j++ )
        {
            printf("Element[%d] = %d\n", j, n[j] );
        }
    
    
        return 0;
    }
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

C中获取数组元素个数