1.先看乙個例題若已定義char s[10];則在下面表示式中不表示s[1]位址的是(b)。
a. s+1 b. s++ c. &s[0]+1 d. &s[1]
這是乙個字元陣列.s表示的是字元陣列的首位址. s[1]的位址 就是s+1,但是不能用s++,它是一種後自增的運算.是一種將s使用後再結算的運算子.在賦值過程中,賦的是s[0]
(1)關於自增運算,先看這道題
strcpy( char *p, char *q)
上面的**,p和q分別指向兩個字串.先解釋下while(*p)表示判斷p指向是字串的末尾,*p指向字串末尾"\0"時為0;在這裡說明下,!*p表示判斷不為0; wihle(p)判斷是否為空,當指標的值是0的時候,即為空.
*p++=*q++;
先運算等號 右邊 *q++ 先取q的值,賦值給左邊,再自增加1; 左邊 *p++ 同上,取q值,就是獲取等號右邊的q;
2.字串的賦值,說明一點
確定陣列下標賦值注意: char* a[5] = "good!"; **會報錯,因為陣列的元素個數不夠.字串後面自帶空格符,也會佔乙個元素位置.
3.字串輸出注意
char *s = "abcde"; s+= 2;
printf("%d\n",s); //這裡輸出的是s得位址.
printf("%s\n",s); //這裡輸出的是以s為首位址的字串. 結果是: cde
字串小結
1.字串概念 字串是位於雙引號中的字串行 在記憶體中以 0 結束,所佔位元組比實際多乙個 2.字串的初始化 在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個字串。前面介紹字串常量時,已說明字串總是以 0 作為串的結束符。因此當把乙個字串存入乙個陣列時,也把結束符 0 存入陣列,並以此作為該...
字串小結
1 獲取字串的長度 strlen size t strlen const char str 功能 計算字串的有效長度,不包含0。返回值 返回字串的字元數 strlen 函式計算的是字串的實際長度,遇到第乙個0結束。函式返回值一定是size t,是無符號的整數,即typedef unsigned in...
字串小結
string的第乙個內容是hash。這個強有力的優化方式會給解題帶來巨大便利,很可惜的是我並沒有能參透。據我理解,hash實際上就是將待雜湊的資料根據某種規則重新對映的乙個過程,而這個過程往往會大大的降低資料的空間複雜度和訪問所需的時間複雜度。比如以下數列 12,23,34,45,50,我設定乙個雜...