字元型陣列和字串的

2021-08-31 13:52:15 字數 675 閱讀 3999

字元型陣列的使用方法和一般的整型陣列沒有太大的區別,常用的定義和初始化方式如下:

char c[5] = ;

char d = ;

另外,我們在定義字串的長度以後,需要對所有的位置都初始化,未被初始化的元素會自動被填上空字元』\0』,例如如下兩種複製實際上是等價的

char c[7] = ;

char d[7] = ;

另外,乙個比較有趣的事情是,字串可以用整型的陣列進行儲存,只是這種用法會造成一半的儲存空間被浪費

int c[5] = ;

int d = ;

字串沒有自己的資料型別,他和字元型陣列使用相同的儲存結構。唯一的區別是字串的末尾會加入乙個空字元』\0』,在執行時如果在字元陣列的末尾出現空字元,就會被當做字串處理。字串的初始化可以用字串的方式,也可以用陣列初始化的方法,例如:

char c[6] = ;

char d[6] = ;

這兩種方法完全等價。

需要注意的是,當字串的賦值超過陣列的長度時,並不會發生錯誤,反而多出的部分會對指標越界指向的儲存空間進行賦值,這可能導致其他位置的資料發生錯誤。在網路黑客攻擊中一種比較低端的攻擊方式,就是利用這種溢位修改計算機中的資料從而造成系統崩潰。

字串和字串陣列

字串陣列 include int main int argc,const char ar printf name1 s n name1 name1 zhangsan 部分初始化中,沒有被初始化的元素預設是0,0 對應的ascii值是 0 char name2 9 printf name2 s n n...

字串和字元陣列

void test1 函式test1中,指標str1所指向的字串有11個元素。一定要注意字串是以 0 為結尾的,而strcpy拷貝了整個字串包括 0 所以存在下標越界的問題。void test2 函式test2中,字元陣列str1包含10個元素。陣列str1並不是以 0 結束,所以不能作為字串使用。...

字串和字元陣列

字串的定義 字串是零個或多個組成的有限序列,只包含空格的串成為空格串。串中所包含的字元個數成為串的長度,長度為0的串為空串,記作 字串中任意個連續的字元組成的子串行稱為該串的子串,相應地,包含子串的串稱為主串,子串的第乙個字元在主串的序號成為子串在主串的位置。字串的比較 當下列條件之一成立時,稱x ...