目录
一、字符数组
1、推荐方法 strlen()
2、sizeof()
3、end()-begin()
二、未指定长度数组
1、推荐方法 sizeof
2、end()-begin()
三、综上所述
1、实际运用
2、方便用法
一、字符数组
1、推荐方法 strlen()
对于字符数组 char c[] = "12345",最好是使用strlen()
复制代码
1
2
3
4
5
6
7
8
9char c[] = "12345"; char d[10] = "678"; cout << "strlen c = " << strlen(c) << endl; cout << "strlen d = " << strlen(d) << endl; 输出:5 3
2、sizeof()
sizeof() 求出的是数组占用的空间长度,而不是实际元素个数
如果定义数组时,未指定空间长度,则放入元素时自动申请空间,元素个数 = 数组长度
但是在字符数组中,末尾有一个‘/0’结束符,
复制代码
1
2
3
4
5
6
7
8char 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 相同
复制代码
1
2
3
4
5
6
7
8char 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() 求出的是数组占用的空间长度,而不是实际元素个数
如果定义数组时,未指定空间长度,则放入元素时自动申请空间,元素个数 = 数组长度
复制代码
1
2
3
4
5
6
7
8
9int 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 相同
复制代码
1
2
3
4
5
6
7
8
9int 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、实际运用
在实际项目中,应该避免这一操作,通常是在结构体中新建一个成员,用来记录数组中的元素个数
例:通讯录管理系统
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#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、方便用法
实在需要求数组长度的话,最为方便的方法就是下面这种 ,创建数组时千万不要指定数组长度
复制代码
1
2int a[] = {1, 2, 3}; length = sizeof(a) / sizeof(a[0]);
最后
以上就是直率薯片最近收集整理的关于C++学习心得:求数组的元素个数的全部内容,更多相关C++学习心得:求数组内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复