問題:
在c中,可以這樣做:
chars
="hello"
;
或者
char*s
="hello"
;
所以我不知道有什麼區別?
我想知道編譯時和執行時間記憶體分配的實際情況。
回答:
這裡的區別是
char*s
="hello world"
;
將放置
"hello world"
在記憶體的
唯讀部分
,並且s
指向這個記憶體的指標使得這個記憶體上的任何寫入操作都是非法的。
在做:
chars
="hello world"
;
將文字字串放在唯讀儲存器中,並將該字串複製到堆疊上新分配的記憶體。
這樣做
s[0
]='j';
合法。
也有:
char * s =「hello」;
這裡s可以在執行時指向任何其他字串,我的意思是它不是常量指標,你可以在執行時分配另乙個值:
s = 「nishant」;
而s 這裡是常量指標,它不能重新分配另乙個字串,但是我們可以在s [index]中分配另乙個字元值。
char 和 char 之間的區別
char 是指標引用 cha 是指標 當用指標引用作為形參的時候,改變形參的指標,同時實參的指標也改變了。當用指標做形參的時候,改變形參的指標,實參的指標不改變,當改變指標所指向的內容的時候,會同時改變。如果你懂引用的,應該可以理解了。include using namespace std stru...
unsiged char和char有區別
剛寫完的,就丟了,只好在寫一次。我在進行mac位址轉換的時候遇到的問題,用iphelp獲取mac的時候用的是char複製,而在用cstring format的時候,格式轉換的結果錯誤了,對於大於127的時候多出了ffff之類的東西,我以為是cstring的bug,後來發現不是這樣的,用sprintf...
char 和char 的區別
1 char是乙個陣列定義,char 是指標定義 也稱char為靜態陣列,char 為動態陣列 2 指標和陣列的區別 1 指標和陣列的分配 陣列是開闢一塊連續的記憶體空間,陣列本身的識別符號 也就是通常所說的陣列名 代表整個陣列,可以使用sizeof來獲得陣列所佔據記憶體空間的大小 注意,不是陣列元...