C++学习心得:求数组的元素个数

目录

一、字符数组  

1、推荐方法 strlen()

2、sizeof()

3、end()-begin()

二、未指定长度数组

1、推荐方法 sizeof

2、end()-begin()

三、综上所述

1、实际运用

2、方便用法


一、字符数组  

1、推荐方法 strlen()

     对于字符数组 char c[] = "12345",最好是使用strlen()

char c[] = "12345";
char d[10] = "678";

cout << "strlen c = " << strlen(c) << endl;
cout << "strlen d = " << strlen(d) << endl;


输出:5
      3

2、sizeof()

sizeof() 求出的是数组占用的空间长度,而不是实际元素个数

如果定义数组时,未指定空间长度,则放入元素时自动申请空间,元素个数 = 数组长度

但是在字符数组中,末尾有一个‘/0’结束符,

char c[] = "12345";
char d[10] = "678";

cout << "sizeof c = " << sizeof(c) / sizeof(c[0]) << endl;
cout << "sizeof d = " << sizeof(d) / sizeof(d[0]) << endl;

输出:6
      10

3、end()-begin()

      结果和sizeof 相同

char c[] = "12345";
char d[10] = "678";

cout << "end-begin c = " << end(c) - begin(c) << endl;
cout << "end-begin d = " << end(d) - begin(d) << endl;

输出:6
     10

二、未指定长度数组

1、推荐方法 sizeof

     sizeof() 求出的是数组占用的空间长度,而不是实际元素个数

      如果定义数组时,未指定空间长度,则放入元素时自动申请空间,元素个数 = 数组长度

int a[] = { 1,2,3,4,5 };
int b[10] = { 6,7,8 };
	
cout << "sizeof a = " << sizeof(a) / sizeof(a[0]) << endl;
cout << "sizeof b = " << sizeof(b) / sizeof(b[0]) << endl;


输出:5
     10

2、end()-begin()

      结果和sizeof 相同

int a[] = { 1,2,3,4,5 };
int b[10] = { 6,7,8 };
	
cout << "end-begin a = " << end(a) - begin(a) << endl;
cout << "end-begin b = " << end(b) - begin(b) << endl;


输出:5
     10

三、综上所述

1、实际运用

     在实际项目中,应该避免这一操作,通常是在结构体中新建一个成员,用来记录数组中的元素个数

例:通讯录管理系统

#define MAX 1000;    //通讯录的最大容量

struct Person    //联系人结构体
{
        string name;
        string telephone;
}

struct  AddressBook    //通讯录结构体
{
    Person personArray[MAX];
    int size ;

}



int main()
{
    AddressBook abs;    //实例化一个AddessBook结构变量
    abs.size = 0;

}

2、方便用法

      实在需要求数组长度的话,最为方便的方法就是下面这种 ,创建数组时千万不要指定数组长度

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

你可能感兴趣的:(C++编程,c++)