動態及靜態陣列大小,strlen()函式與sizeof()c操作符
阿新 • • 發佈:2018-12-09
普通陣列(靜態陣列)
在定義時就給出大小,在編譯時大小確定。
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
用於動態陣列: