1. 程式人生 > >動態及靜態陣列大小,strlen()函式與sizeof()c操作符

動態及靜態陣列大小,strlen()函式與sizeof()c操作符

普通陣列(靜態陣列) 

在定義時就給出大小,在編譯時大小確定。

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
用於動態陣列: