不能用字串給字元陣列賦值

2021-07-01 22:09:07 字數 403 閱讀 1755

c和指標(《pointers on c》) 8.1.11

乙個字串,如"hello",一般為字串常量,可以用它對字元指標賦值,或初始化,相當於把這個字串常量的首位址賦給這個指標,如:

char *p = "hello"; 或者

char *p;

p="hello";

但是,當用"hello"給字元陣列作初始化時,"hello",並非乙個字串常量,而是相當於乙個初始化列表,在其他任何時候,它都表示乙個字串常量。而陣列名也是乙個指標常量,不能對常量賦值。所以

char a = "hello"; //正確,hello",並非乙個字串常量,而是相當於乙個初始化列表 而

char a[6]; 

a = "hello"; //錯誤,a為指標常量,不能修改,當然也不能賦值

C 傳遞字串給C 不能用ref限定

場景 dll中申明 extern c declspec dllexport int winapi test char astr2,char bstr2 dll 需傳入char 型別 dllimport mydll.dll 傳入值 public static extern int mysum ref ...

字串字元陣列的賦值

字元陣列的定義與初始化 char str 10 如果說提供的字元的個數大於陣列的長度,就按語法錯誤處理,如果小於陣列的長度,不夠的位置用空字元補全 0 字元陣列與字串 1 c 語言中將字串當做字元陣列來處理 字串的結束標誌是 0 而前面的所有字元組成字串,不算 0 2 對於字串常量的話,系統會自動在...

c語言不能把字元常量賦值給字元陣列

char s 20 s helo 這樣是錯誤的,原因就是不能用賦值語句將乙個字串常量直接給乙個字元陣列賦值。char s 20 char ss hello s ss 這也是錯誤的,原因是不能用賦值語句將乙個字元陣列直接給乙個字元陣列賦值 即字串的複製 c語言中,但是在c 的string 類,上面的賦...