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 是物件導向的程式語言,所以鉤子是寫在類中的。設定的鉤子型別 public enum hooktype int public partial class form1 form dllimport user32.dll private static extern int callnexthookex...
c語言中與的區別,C語言中 與 的區別
區別如復下表 擴充套件資料具體區別制的例子 bai1 c 語言輸入輸出du printf a d,b d zhi,a,b scanf d d d a,b,c 2 vb 語言的輸入輸出 inputbox x 輸入 x 的值dao print x x 而且,這兩種運算子,還分為字首運算和字尾運算 如 i...
C 程序的小問題,C 程式的乙個小問題
程式首先執行主函式 也就是main函式 並且是從上到下順序執行,當程式執行到第6行的時候,開始執行simon函式,傳入的引數是3,並且也是在simon函式從上到下順序執行,這時第一次列印出cout simon says touch your toes n times.然後再回到主函式的第7行,再順序...