(1) 用字元陣列存放乙個字串,然後輸出該字串。
例題一:定義乙個字元陣列,對它初始化,然後輸出該字串。
#include void(2) 用字元指標指向乙個字串main()
例題二:可以不定義字元陣列,而定義乙個字元指標。用字元指標指向字串中的字元。
#include void對字串中字元的訪問,可以用下標方法,也可以用指標方法!main()
下標法舉例:將字串a複製為字串b
#include voidview codemain()
*(b+i) = '\0'
; printf(
"string a is: %s\n
", a);
printf(
"string b is: ");
for(i=0; b[i] != '
\0'; i++)
printf(
"\n\n");
}
指標方法舉例:將字串a複製為字串b
#include voidview codemain()
*p2 = '\0'
; printf(
"string a is: %s\n
", a);
printf(
"string b is: ");
for(i=0; b[i] != '
\0'; i++)
printf("\n
");}
例題:用函式呼叫實現字串的複製
用字元陣列作引數
#include voidview codemain()
void copy_string(char
from, char
to) to[i] = '\0'
;}
形參用字元指標變數
1 #include 2view code3void
main()418
19void copy_string( char *from, char *to )
2025
26 *to = '\0'
;27}28
29//
丫的,記憶體出錯了,該記憶體不能被寫,為什麼? why??見第8,9行
具體解釋:五大記憶體分割槽
在c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。
棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。
堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個new就要對應乙個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。
自由儲存區,就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。
全域性/靜態儲存區,全域性變數和靜態變數被分配到同一塊記憶體中,在以前的c語言中,全域性變數又分為初始化的和未初始化的,在c++裡面沒有這個區分了,他們共同占用同一塊記憶體區。
常量儲存區,這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改,而且方法很多,在《const的思考》一文中,我給出了6種方法)
優化:對 copy_string 函式還可作簡化
指標與陣列(二) 字串認知
用c語言實現各字串函式 一 字串比較函式strcmp strncmp strcmp int strcmp const char string1 constchar string2 功能 比較字串string1和string2大小 返回值 0,表示string1小於string2 返回值 0,表示st...
Python學習4 字串
1.python字串 python沒有字元,所有的都叫做字串,用單引號表示。2.python中字串,列表,元祖的相似性 1 訪問,都是用str i 來訪問第i 1個元素。2 切片,str i j 來擷取其中的一部分。3 拼接,若要向其中插入一部分,都要使用str i str2 str i 但是此過程...
指標系統學習3 多維陣列與指標
用指標變數可以指向一維陣列中的元素,也可以指向多維陣列中的元素。但在概念上和使用上,多維陣列的指標比一維陣列的指標要複雜一些。先回顧一下多維陣列的性質,可以認為二維陣列是 陣列的陣列 例 定義int a 3 4 則二維陣列a是由3個一維陣列所組成的。設二維陣列的首行的首位址為2000,則有 記憶體中...