动态及静态数组大小,strlen()函数与sizeof()c操作符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/h2453532874/article/details/68485638

普通数组(静态数组) 

在定义时就给出大小,在编译时大小确定。

char a[]="0123456789"
char b[100];

动态数组

在内存中申请一块地址,根据后期需求分配内存。

如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。

char *c;
a=malloc(200*sizeof(char));


关于数组大小确定

 sizeof():

sizeof()是操作符 !!!  ,编译的时候就是一个确定大小。

用于普通数组,返回值为定义时数组大小。

char sum[30];
length = sizeof(sum); //length值为30


用于动态数组,分为两种情况:

1. 判断指针大小:

	int count=sizeof(c);//c为动态数组申请空间的首地址

	返回的是该指针所占的空间(指针的存储用的是长整型,所以为4)


2.判断指针所☞地址上存放内容大小:

	int count=sizeof(*c);//c为动态数组申请空间的首地址
c是首地址,*c是存放的第一个字符!

       //返回值为   1

strlen():

string-length()是一个函数,用于判断字符长度。

    用于普通数组,返回存储字符个数。(不包括停止字符 /n )

char sum[30]="123456";
length = strlen(sum); //length值为6
用于动态数组:

猜你喜欢

转载自blog.csdn.net/h2453532874/article/details/68485638
今日推荐