c語言問題

2022-02-15 06:21:10 字數 1012 閱讀 9603

1樓:冰血無雙

char陣列 一個字元為一個元素

char* 陣列記錄 字串的首地址

enum不賦值 預設從0開始

賦值之後 從賦值項開始 em2 =1 所以 em3 = 2"aa" 索引為0 "bb"索引為1 "cc"索引為2 "dd"索引為3

所以輸出 ddbbcc

2樓:瀚漠

第一問:

不加*的話就是:char aa; 這是一個字元陣列,賦值時只能是:char aa = ;

只能用單字元對其初始化。

而char *aa; 是一個字元指標陣列,在初始化的時候就可以用字串對其賦值。

主要是資料型別方面的原因,你可以多看看這方面內容。

第二問:

對於列舉型別,其變數的值是累加的:

這裡enum em; 由於em2為1,那麼em3就是2.

又例如:enum em; 由於em1為1,那麼em2就是2,em3就是3.

未初始化的列舉變數是進行累加賦值的。

3樓:匿名使用者

首先你要知道初始化中,接下來的列舉子取值是前面一個列舉子的取值+1,也就是說em3 = em2

+1;所以輸出cc。

char *aa=;定義的是一個字元指標陣列,它的指標分別指向「aa」、「bb」、「cc」、"dd"。但這兒有個錯誤(可能你用的編譯器太老或者有相關設定沒開啟所以沒提示),「aa」、「bb」、「cc」、"dd"不是變數,也就是說它們是不可變的。而char *aa中指向的地址的內容是可變的,所以是錯的。

應該改成:

const char *aa=;

題主是真正在思考後不懂來提問的人,有別與其他「拿來主義」,可以留下qq一起交流;)

4樓:匿名使用者

aa前面用*是宣告指標陣列,陣列裡存放的是存放變數地址的指標,跟字串在記憶體中存放的方式有關

em是列舉型別,em2 =1 ,em3沒有賦值,則順序下來,就是2,相當於em3 = 2;

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...

c語言問題,C語言問題?

char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...

C語言問題C語言問題,C語言小問題段錯誤是什麼

str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...