1. 程式人生 > >char *a與char a[n]的區別

char *a與char a[n]的區別

機制 strcat 停止 添加 字符 區別 是把 har 自動

char *a=‘ab‘;//a[2]一定為‘\0‘,但是,a[5]這樣的指針越界不會報錯

char a[3] = {‘a‘,‘a‘,‘a‘};//a[3]屬於越界,會報錯

char b[5]={‘b‘,‘b‘};//系統會自動將沒定義的字符定義為‘\0‘,即此字符串為{‘b‘,‘b‘,‘\0‘,‘\0‘,‘\0‘}

int j,q;

j = strlen(b);//值為1

q = strlen(b);//值不一定為3,strlen的機制是直到檢測到‘\0‘為止

char c[3] = {‘c‘,‘c‘,‘\o‘};

strcat(b,c);//沒問題

strcat(b,a);//報錯,strcat的機制是把a中的字符添加到b字符串後面,直到檢測到a中的‘\o‘停止添加。

char *a與char a[n]的區別