關於:
可見這樣定義的字串是可以直接在本體上修改其內容的,因為修改前後位址並沒有變化。# include
intmain()
>>
>
00bbf900
00bbf900
例2:定義乙個指標指向字串常量,然後嘗試修改字串的標點符號:
報錯:寫入訪問許可權衝突# include
intmain()
先說結論:
解釋:
3)若程式試圖修改sp
變數所指向的字串內容就會報錯,因為字串在常量儲存器,是唯讀的。
1)程式載入字串值,並存放到常量儲存區,常量儲存器的內容是唯讀的;
2)程式在棧上初始化乙個陣列(分配空間),並自動保證該陣列足夠大以容納字串;
3)程式將字串的內容複製到棧的陣列內。
這兩者的區別就在於:定義指標的方法僅僅是 讓指標指向了常量儲存器中的字串,而定義陣列的方法是 得到了常量儲存器中字串的副本,所以定義陣列的方法才可以修改字串。
關於 c 語言中儲存器的型別:
參考文章:c語言:儲存器的型別
對用定義指標指向字串的方法,補充一下指標sp
裡存的是字串的位址,而字串本體只有乙個,就是常量區的字串。
# include
intmain()
>>
>
0097edbc
&sp:
00cff744
*
逆轉字串內容(C語言)
問題描述 有乙個字元陣列的內容為 student a am i 請你將陣列的內容改為 i am a student 要求 不能使用庫函式。只能開闢有限個空間 空間個數和字串的長度無關 student a am i i ma a tneduts i am a student 思路 對字串內容進行逆轉,...
C語言程式設計 C語言 判斷字串內容
判斷字串開頭是不是回車換行 n 或 r 如果不是返回0,如果是,返回有幾個這樣的字元。int isnewline char acstr return isize 判斷字串是不是空白字元 小於 大於 0 的字元 如果不是返回0,如果是,返回有幾個這樣的字元。int isspace char acstr...
字串內容
那麼,你是否知道字串也是物件,同樣具有方法。這些方法可以完成包括檢驗一部分字串和去除空格在內的各種工作。你在程式中使用的字串都是str類的物件 還真不知道字元是物件。usr bin python filename str methods.py name swaroop this is a strin...