1樓:匿名使用者
供參考解釋:
char *ss="0123456789"; 定義指標 指向字串
分析:指標型字串,可以理解成字元陣列 char str[10]=
針對提問,ss為指標,指標本身儲存的是指向儲存空間的首地址值,而非具體的內容值。
根據系統和平臺的不同,對指標本身大小的設定也有區別,上例中應該是32系統,用於儲存空間地址的指標變數的大小是4位元組。
*ss為指標間引,可理解為*(空間首地址),獲取的就是儲存空間首地址的值,對於字串"0123456789"來說,首地址開始儲存的單元內容,是字元0,所以佔用1個位元組,可等效於舉例中的str[0]。
理解上述內容的關鍵是正確區分指標本身和指標指向空間的區別,以及字串和字元陣列的關係!
2樓:昧先幾者非明哲
sizeof() 判斷資料型別記憶體中佔用的位元組數!
char *ss="0123456789";
ss是指標指向一個儲存字串的記憶體空間,無論指向空間儲存任何內容,只要是指標,它就是
int型別的,所以sizeof(ss) = 4.
ss 既然是指標, *ss就是字元陣列的首元素,也即是*ss = '0' ;
‘0’ 是char型資料,所以sizeof(*ss) = 1 ;
3樓:匿名使用者
char *ss = "0123456789";
/*·ss是指標變數
·ss存的是後面字串的地址
·*ss可以看做ss[0],也就可以看做是字串裡的第一個字母,也就是'0'
·sizeof(ss), 求指標變數的大小,指標變數的大小是4位元組·sizeof(*ss)可以看做sizeof(ss[0])可以看做sizeof('0'),求一個char字元的大小,所以1個位元組*/
4樓:牛浩涆
注意:第一個ss是char型指標,字元型是四個位元組,故輸出4,因為你ss指標指向了數字0,是整形的數,佔一個位元組,故*ss等價於數字0,輸出就是1了。
5樓:匿名使用者
ss宣告的是指標,所以大小為4
*ss代表的是一個char型別資料,所以是1char *ss="0123456789";
你這句賦值的結果是,*ss裡只會有一個0,其它什麼都沒有,資料截斷
6樓:j**a緊挨
ss 是指標。不管什麼指標,都佔4位元組
*ss 是"0123456789" 的值, 因為char型別只能儲存1位元組,所以它只存了'0‘,所以'0'只佔了1位元組
7樓:認錯
ss 是一個地址,此時將會解釋為字串的首地址;
*ss 是一個指向首地址的指標,此時解釋為一個字元。
c語言中*ss++是什麼意思
8樓:匿名使用者
若有char array[5] = "abcd";
char *ss = array;
printf("%c", *ss++); // 先輸出'a',然後指標ss指向'b'
c語言中,比如一個字串ss,則*ss,ss[ ]可以互相通用嗎?
9樓:匿名使用者
在宣告函式做形參時,它們是一樣的。
10樓:匿名使用者
可以,但不確定的東西(尤其是指標)平時儘量少用。
語c中戲與文的明顯區別?語C的戲與文有什麼區別
這個院子除了他們一家活動的範圍之內不再長荒草之外,其他一切照舊。這個房子住人和不住人時也沒多大區別,給人的感覺依然是荒涼和沒有生氣。我每次回去,婆婆都忍不住給我叨叨兩句 你看看這一家子,住了都快一年了,也不知道拾掇拾掇。語c的戲與文有什麼區別 戲分自戲對戲。對戲就是兩人或以上一起完成一齣戲,也就是走...
c語言問題以下程式段中與語句,C語言問題。以下程式段中與語句K a b (b c 1 0) 0 功能等價的是()
if a b k 1 else if b c k 1 else if a c k 1 else k 0。選d。問號表示式 表示式1 表示式2 表示式3 如果表示式1成立則執行表示式2,否則執行表示式3。注意事項 問號表示式是從右向左執行 例如 int a 8,b 3,c 7 printf d a b...
C 程式的問題
輸出是str指標的地址。若沒有 void 則輸出它指向的字串string。你說得沒有錯,0x004260a4是指標str的 值 其實就是它指向的字串的首地址,在你這裡就是字串string中的第一個字母s的地址 而地址0x0012ff7c中存放的是指標變數p 要知道任何一個變數都得有個 地方 存放啊!...