在c語言中int型別的陣列能夠用來存放字串嗎說

2022-02-12 00:54:46 字數 1256 閱讀 5888

1樓:匿名使用者

當然是可以的。

不管是什麼樣的陣列,它在記憶體裡面都是一個位元組一個位元組儲存的。

只不過,型別不同的話,取的時候取的位元組數不一樣。

如果對於同一記憶體地址

void * addr = 0x12345678;

進行下面不同的操作

char ch = (*(char*)addr); // 就從0x12345678取1個位元組

int i = (*(int*)addr); // 就從0x12345678取4個位元組

怎樣儲存和怎樣取出都是可以由程式控制的。

c語言如何定義一個陣列存放字元和數字?

2樓:興文博武數碼館

遇到字母和數字混合的陣列,定義的時候就不要定義為int型陣列,因為用%d輸出不了字母, 輸出的是字母的ascii碼,不是輸出的字母本身,所以,要定義為 字串型的陣列。

若不是裡面有個佔兩個字元的 『10』,可以直接用 %s 輸出。

但是因為有 字元『10』,%s輸出的是0 就不能用了,就只能用for迴圈輸出。

3樓:匿名使用者

c語言中,字元型別char和整數型別在儲存資料的格式上是相同的,都是採用補碼儲存資料。所不同的是,char只有一個位元組,而int資料有四個位元組。一個位元組表示的有符號數範圍為:

-128~127, 四位元組表示的有符號數範圍為:-2^31~2^31-1.

因此,若想定義一個陣列,既能儲存char型別,又能儲存int型別,則一般情況要定義成int型別陣列。

若實際應用中,需要儲存的整數型別資料範圍在-128~127之間,則可定義成char型別陣列。

注:當char型別陣列中既儲存整數,又儲存字元時,一定不要按字串來操作!因為,數值0是整數的一個有效數字,但又是字串的結束符值。

按字串操作這樣的陣列,會導致程式計算出現錯誤。

在輸出資料時,如printf(),當格式串為%c時,是把陣列中儲存的值按字元輸出;當格式串為%d時,是把陣列中儲存的值按整數輸出。

4樓:匿名使用者

你可以用 char 型的陣列將你說的東西放在一起,但是要注意的是 10 ,10是兩個數字,不能放在一個char 裡面,需要就把10 分成 『1』 和『0』 兩個。

5樓:匿名使用者

分別定義一個char型和int型陣列,用來存放字元和數字

c語言中的陣列什麼意思?

c語言中有符號型別的int範圍,C語言中 有符號型別的int範圍( 128 127)是怎麼求出來的,特別是 128 怎麼理解 負數用二進位制怎麼表示

恩!首先要指出你的一個錯誤!int的範圍不是 128 127 這個是char的範圍,範圍的大小是由型別所佔有的位元組來決定的。如此所示 char是一個位元組8bit,那麼在二進位制中,8bit最大值是255,最小值是0 在是在無符號時 如果是有符號的話.那麼就還有一位是符號為,最高位是符號為。例如 ...

在c語言中 如果下面的變數都是int型別 則輸出的結果是

輸出結果是為7 1.pad sum 先將sum 此時為5 賦值給pad 此時sum的值,賦值給pad,pad也為5 再進行sum 操作。2.pad 該 直接執行,結束後,pad由5 1操作,變為6。3.pad,pad直接操作 動作,6 1,結果pad為7,該 執行結束。4.printf列印出7 su...

C語言中陣列問題

這段 是統計你輸入裡邊0 9的數字個數,輸入的字元用asc碼錶示,c的變數指代輸入的字元,那麼c 0 c 9 這個條件就判斷輸入的是否為數字,c 0 是一個表示式,將會返回你所輸入字元的與字元 0 的差值,例如你輸入的值是字元 1 這個表示式為 1 0 兩個在asc碼中差值為1,故shuzi中下標為...