- 动态数组
<pre class="plain" name="code">
- 字符数组
- 可以通过strlen获取,获取的是实际的字符个数,不包含结束符\0;
- 数组的大小无关;
- strlen的参数是指针还是字符数组的变量名都可以
- 普通数组
- 无法获取
- 字符数组
- 普通数组
- 可以通过sizeof(arr)/sizeof(type)来获取,其中type为数据类型
- 如果是字符数组,则数组长度-1
- 当普通数组(非字符数组)作为参数传递时,就会变成普通指针,无法获取数组大小
#include<string>
#include<string>
using namespace std;
void main()
{
int arr[10];
char c[20]="adkasfd";
int *p = arr;
char *ptr = c;
cout<<sizeof(arr)/sizeof(int)<<endl; //10
cout<<sizeof(p)/sizeof(int)<<endl; //1
cout<<sizeof(c)/sizeof(char)<<endl; //20
cout<<strlen(c)<<endl; //7
cout<<sizeof(ptr)/sizeof(char)<<endl; //4指针类型占4字节,char是1字节
cout<<strlen(ptr)<<endl; //7
cout<<ptr<<endl; //adkasfd
}