先看一段**
char * str1 = "abcde";
char str2= "abcde";
str1[0] = 'x';
str2[0] ='x';
猜想一下這段**是否正確?
答案是編譯正確,但是執行時崩潰。因為語法上str1[0] = 'x'; 等價於*(str1)=『x; str2[0] ='x'; 都沒有錯誤。執行時崩潰是因為str1和str2儲存方式是不同的,str1是四個位元組而且儲存的是字串常量的首位址,str2六個位元組儲存的是a,b,c,d,e,\0,字串常量是不予許被修改的。
strcpy(str1 , 'xyz');
strcpy(str2 , "hellow word");
這兩句同樣錯誤,原因(1)字串常量不能修改(2)長度超出,越界了
利用gets函式輸入字串時很容易出現問題,想要找的出錯點較難,因為很可能是因為其他函式塊的影響並不是本函式塊的問題。看下面這段** :
int main( )
ORACLE in 字串,字串,字串
因為傳進來的引數是 字串,字串,字串,要實現in 字串,字串,字串 select from htl price p where p.hotel id 30073328 and p.able sale date between to date 2009 03 27 yyyy mm dd and to ...
字串格式化函式引起的崩潰
我們常用的格式化字串函式有 hresult stringcchvprintf out lptstr pszdest,in size t cchdest,in lpctstr pszformat,in va list arglist int printf const char format,對於如下的...
字串,字串陣列,字串指標!!
字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...