c語言中定義字元陣列,其中存放的是什麼

時間 2021-10-15 00:01:04

1樓:匿名使用者

在c/c++中,陣列是指 連續分佈的記憶體單元。字串是一種字元陣列,比其他陣列特殊的地方是如果陣列被賦值(scanf,fread,fprintf,strcpy,nstrcpy)會在陣列末尾追加'\0'.

在c語言中,陣列大小是不可知的。(strlen(s)只能算出從s開始到'\0'的長度)

2樓:匿名使用者

總體來說,陣列未初始化之前都是不可知的,如果強行輸出時會是亂碼。對於字元型陣列,只要定義個數小於等於定義的個數,它都會自動加/0。對於整型陣列,不會加/0。

3樓:匿名使用者

你定義的char a[60],因為陣列是從a[0]開始計算的 如果你沒有賦值

那麼預設的是全是0 也就是全是空格 以內你定義的是字元型。

‘\0’是系統給你加的 它的位置是a[60]的60個元素的後面 不佔用你定義的60個元素

你定義的是字元陣列 不是int 行陣列 char定義的是放字元 字串的

4樓:匿名使用者

這個問題是你把陣列與字串搞混了;

比方說char[60]="i a m",你用字串賦值的話,你的字母個數必需小於60,否則就會出錯,如果小於60的話,系統會自動加"\0",而陣列卻不同,你可以正好等於60,也就是說最後一個數字不一定等於"\0".如果小於60,則後面當然是0了

簡單一點說:你用字串賦值的話後面系統就會自動加"\0",陣列賦值後面是不自加"\0"的.

5樓:匿名使用者

自己試一下就知道了,先定義一個字元陣列(不初始化),用gets函式輸出,如果什麼也沒有就說明未初始化時全部賦'\0',如果是亂碼就說明是隨機值。

部分初始化我知道,後面未被賦值的部分自動賦'\0'

6樓:

在c語言中,字元陣列中存放的內容中字元的asc碼。如果在定義過程中沒有賦初值,則陣列中的元素都為0。如

char c[10];

定義了c是一個字元陣列共有10個元素c[0]、c[1]……c[9],因為沒有賦初值,所以這10個元素的值都是0。

如果定義時賦了初值,或在程式中賦元素的值,則該元素儲存對應字元的asc碼值。如:

char c[10]="abcd";

則元素a[0]=65 //'a'的asc碼是65

a[1]=66 //'b'的asc碼是66

a[2]=67 //'c'的asc碼是67

a[3]=68 //'d'的asc碼是68

在程式中,a[0]='a'和a[0]=65是等價的。

驗證:char a[10]="abcd";

printf("%d %c\n",a[0],a[0]); //輸出65 a

printf("%d %c\n",a[3],a[3]); //輸出68 d

a[3]=65;

printf("%d %c\n",a[3],a[3]); //輸出65 a

printf("%d",a[6]); // 輸出0 因為沒有賦a[6]初值,所以其值為0

c語言程式設計:輸入一個字串存放在陣列a中,將其中的所有小寫字母存放到字元陣列b中並輸出?

7樓:司馬刀劍

#include

#include

#include

#define max 10

int main()

}for (int i = 0; i < strlen(b); i++)

system("pause");

return 0;}

8樓:匿名使用者

#include

#include

int main()

printf("\n");

puts(b);

return 0;}

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

興文博武數碼館 遇到字母和數字混合的陣列,定義的時候就不要定義為int型陣列,因為用 d輸出不了字母,輸出的是字母的ascii碼,不是輸出的字母本身,所以,要定義為 字串型的陣列。若不是裡面有個佔兩個字元的 10 可以直接用 s 輸出。但是因為有 字元 10 s輸出的是0 就不能用了,就只能用for...

C語言中怎樣定義動態一維陣列,c語言中定義一個動態一維陣列的函式,然後在主函式中使用

天雲一號 在c語言中,陣列的定義都是固定長度的,長度不允許變化。可以通過連結串列的方式來達到定義 動態陣列 的等價功能,舉例如下 連結串列節點定義如下 struct node 存放資料時可以對節點中的node賦值即可,如 struct node p 定義一個連結串列節點p data 3 存放第一個資...

C語言,字串陣列的輸出,C語言 如何定義字串陣列

自我程式設計 getch 這句多餘,只是列印而已不需要這個函式接收字元。printf s n ch 0 printf s n ch 1 printf s n ch 2 這3句列印,第2個傳參和printf函式形參型別不一致,函式需要的是char 而你給的是char 12 執行可以,但會有警告。你想要...