c 的陣列問題,關於c語言陣列的一些疑惑?

時間 2023-04-20 11:15:03

1樓:匿名使用者

#include

void main()

正確寫法:#include

void main()

#include

void sum(char array,int size )void main()

正確原因:這裡的char array是形參,sum(a, 10)中,引數的賦值過程是這樣的:array = b, size = 10

如果你能明白第一個程式的錯誤原因的話,那這一條的正確原因你也就心知肚明瞭。

2樓:匿名使用者

引數寫char array 實際上是char *array。和變數寫char b是不同的。變數寫char b是長度待定的陣列,需要通過初始化確定長度。

用來初始化的必須是字串常量或者{}初始化常量。

3樓:匿名使用者

為字元陣列附值需要雙引號,所以b=a"

第二個是把陣列a作為實參傳遞到形參當中去,傳遞的是陣列名a,也是地址,但當用sum函式呼叫它的時候還是取得是裡面a陣列裡面的數值,及傳值呼叫。

4樓:匿名使用者

我知道你家的地址以後,敲門進去,看見家裡是你。

我知道你家的地址以後,敲門進去,看見家裡是你。

關於c語言陣列的一些疑惑?

5樓:匿名使用者

書上說的沒錯,你可能把array[10]理解成一個陣列元素了吧,其實它只是把一個包含有10個元素的陣列作為引數,而不是一個陣列元素,明白了嗎?

6樓:格里程式設計辦公技巧

左邊書上說的是陣列的元素不能作為形參,不能理解為陣列不能作為形參。

實際上這書它說的太繞了,不易理解。

只要記住陣列作為函式引數可以由下面幾種方式:

1. type fun(type arr,int size);

fun(type *arr, int size);

fun(type arr[常數], int size);

其中1/2種方式是最常用的,第三種不常用,一般不會寫常數因為寫了編譯器也不關心。另外一個問題也是你問的吧具體可以看看那個說明。

7樓:匿名使用者

陣列元素不能作為形參, 但是陣列能啊, 例子中形參是一個陣列。

c語言陣列問題

8樓:毓良剛棋

//printf貌似錯了,兩邊需要雙引號。是轉移字元,表示換行了。

這個程式就是讓你輸入一個包含5個整形資料的陣列,再把他們輸出。

請輸入和請輸出。

是程式制定讓它輸出出來的中文說明,不是指輸出這兩句話就可以讓你有輸入和輸出的操作,輸入和輸出是由scanf和printf來實現的。

兩個for迴圈的作用在程式裡說清楚了。

執行的結果只有一個,就是下面那一行。上面那行是你除錯的時候輸入進去的,不是輸出。

9樓:賓松蘭黎羅

好像不會輸出。

22」吧。就是讀入5個數。

再輸出意思(1)main程式入口(2)設定x為0-5的整形陣列整形變數k

4)一次讀入5個數(6)輸出5個數。

for是用於給陣列賦值。

scanf是讀入資料。

執行結果是一個。

因為第一行本來是你輸入的。

10樓:宋愛景介環

作用:輸入一個陣列,然後再把這個陣列輸出;

但我不知道為什麼最後一個是-22

2 1定義一個整形陣列x[5],和k

輸入資料。輸出資料。

3你第二個寫錯了,應該是。

輸出資料為。

而請輸入資料是隨即打5個。

4for語句是迴圈結構。

scanf起到將資料傳送給計算機,你的程式有很多錯誤,我修改了並執行,下面是正確的。

#include

voidmain()

11樓:長士恩竇羅

向整形陣列輸入5個數字,然後在輸出,不過這裡要改下for(k=0;k<5;k++)

不然你就出錯了像你上面的-22

printf

請輸入資料:")

for(k=0;k<5;k++)

scanf"%d",&x[k]);這裡是迴圈形式向陣列輸入各個資料,scanf()是輸入函式,每一步的意思程式說的很清楚了,建議你看看數,這太基礎了,都不好解釋了:)

c++陣列問題

12樓:匿名使用者

sizeof是求所佔大小。onearray代表陣列名,也就是代表整個陣列。於是sizeof(onearray) 就是整個陣列所佔空間的大小。

同理,sizeof(onearray[0])表示下標為0的元素所佔空間大小。你的元素型別相同,所以每個大小都是sizeof(onearray[0])。

整個大小除以每個大小,就是個數。

比如整個陣列佔30位元組,每個元素3個位元組,故有十個元素。

13樓:暢景彰

sizeof()這個函式的功能是求括號裡面資料佔用記憶體的大小。

sizeof(onearray)是求整個陣列中所有的元素總共佔用記憶體的大小,而sizeof(onearray[0])是求出這個陣列中,單個元素佔用的記憶體大小,所以相除的話就是你這個陣列有多少個元素了。

14樓:匿名使用者

一列n個相同的箱子,求n

n=箱子總長 / 單個箱子長度。

如此汝可明白?

c語言陣列問題

15樓:也許_沒有_也許

本題巧妙運用陣列c中的元素來統計陣列s中1234這4個數字出現的次數。

程式執行完後,最終結果是4332,表示1出現了4次,2和3各出現了3次,4出現了2次。

for(i=0;i<12;i++)

c[s[i]]+

當i=0時,s[i]相當於s[0],取數字其實是1,相當於c[1]++這樣c陣列中的第一個元素就自然從0變為1

同理,當i=2時,s[2]的內容是2,相當於c[2]++這樣c陣列中的第二個元素就自然從0變為1,這時統計1和2兩個數字各出現過1次了。

以此類推,i=3和i=4的時候,c[4]++已經執行過2次,表示數字4已出現過2次。

再往下推下去,思路已經很明瞭,後面的**也沒太大難度。

本題的關鍵在於c[s[i]]+這行**,你順到我說的思路,根據迴圈變數的增值,把數字都代進去,自然就會看明白。

c[5]=是把c陣列中所有的元素清0

16樓:匿名使用者

main()

c[5]=,i;

for(i=0;i<12;i++)c[s[i]]+c[s[i]]就是先算s[i]的值,比如第一個i=0時,s[i]=1 再求c[1]=c[1]+1的值。

for(i=1;i<5;i++)其實c[0]=0printf("%d",c[i]);

printf(""

c++字元陣列的問題

17樓:匿名使用者

1. c++中,存放字元的陣列可以分為字元陣列與字串陣列。字元陣列是指該陣列中存放了字元,如:

char ch[4]=;該定義中ch為字元陣列,該陣列包含4個元素,但不含字串結束符'\0',無法構成字串,只能使用for輸出。字串陣列就是陣列中包含了字串結束符'\0',該陣列就可以作為字串整體操作,如定義char ch[20]=;或者char ch[20]="abcd"; ch[4]的值為'\0',此時將ch作為字串的首地址,cin自動識別為字串,cin>>ch;就一次性輸出ch陣列中的字元,直到碰到字串結束為止,而不用使用for輸出了。當然,你一定要用for也可以實現,此時將字串陣列當成字元陣列看待,遂個輸出陣列元素。

2. p為可以指向字串的指標變數,"hello"作為字串常量,在程式設計時,常量也是有記憶體空間存放的,只是其存放的地址我們不知道,但系統知道,所以,char *p=「hello",這個操作就是系統將字串常量「hello"的首地址賦給p指標變數,則p相當於一個具有可變地址空間的字串陣列,而問題1中的ch相當於一個具有常量地址空間的字串陣列。

18樓:網友

ch與*ch 在賦值時是一樣的。

差別就是:char *s中的s所指向的內容是常量,不允許修改char s中的s是可以修改的。

輸出p,是輸出指標指向的字串,而儲存的是這個字串的地址。

19樓:匿名使用者

輸入可以用\0 或者用while()

輸出可以用指標連續輸出,或者還是while你要是想輸出地址就 &p 而不是單純的p,&為取地址的意思樓下的錯了 是&p 而不是*p=&(

20樓:匿名使用者

c++是高階語言,cin標準輸入流,它會自動處理你的輸入流,為什麼要用for,高階語言就是高階在這裡,更加智慧,而且如果每次你都用for不覺得很累嗎,這樣一個重複的過程並且常用的過程被語言設計者簡化到cin,方便程式設計師。

char *p=「hello「 典型的c風格字串定義方式,如果你用cout《如果想輸出p存放的地址就用cout<<(void*)p;,只輸出第一個位元組就用cout<<*p;

21樓:匿名使用者

20是字串長度的定義,當然輸入一個字串直接輸入輸出就行了。可能輸入有誤在看看。

22樓:飛苓青蘭

經典解釋int

chara[12][10],二維陣列。

有12個行陣列,一個內花括號代表一個行陣列,行陣列以a[0],a[1],a[2]…做陣列名,每個行陣列有個10元素,例a[i][j]:a[i]是行陣列名,a[j]是行陣列中的元素a[j]

23樓:自由翱翔海闊天空

不需要迴圈是因為函式把字串按地址開始一直輸出/輸入,直到遇到\0結束符;

24樓:醬流一

這是非常基礎的問題,要處理字串時,我們是用字串首地址當成整個字串,例如。

cout<

求c語言陣列問題 5

c語言陣列問題?

25樓:岔路程式緣

你說的二維陣列,要用weekday[i][j]來表示sunday、monday……到saturday之間的每一天的星期名稱。

因為在c語言中,變數沒有字串型別,想存放一個字串,就要用到一維字元陣列。所以,有時候也把一維字元陣列變數看成「字串變數」。如宣告char a[10];,則程式中可以用a(不帶後面的中括號)指代a[10]中存放的全體字元,就是把a當成字串了。

二維字元陣列,可以理解為一維字串陣列。如char b[i][j];,則b[i]可以代表每一個字串了。

回到原題,這裡可以用weekday[i]來代表星期的每一個名字,如weekday[0]=「sunday」,等等。

26樓:高數線代程式設計狂

你這麼看,這個二維陣列,第一維表示行號,第二維表示列號。如果直接兩維都指定取得是一個字元。只指定第一維,就是取第一行所有字元。

而每行實際存的就是星期一,星期二,這些字串。此程式也就是要輸出這些字串。

關於C語言陣列的建立,C語言如何建立陣列

用一個簡單的例子試試.不知道對不對.還望高手指點struct stu boy 2 mian int i for i 0 i 2 i print n d stu.boy i num struct aa std 3 輸出for i 0 i 3 i 輸出模式基本上就這樣 typedef stuctstu ...

c語言一維陣列的問題,求解啊,C語言一維陣列的問題,求解啊

include include define n 10 定義陣列大小 int main void printf 最高分 2f t最低分 2f n及格人數 return 0 void bubble float score,int n c語言陣列問題求解,一個陣列後面加加是什麼意思,是計數嗎,為什麼括號...

請教C語言陣列的問題,請教一個C語言陣列的問題

這裡沒有重定義,第一個for裡是先給i賦初值2然後進行迴圈,到第二個for的時候i的值又被重新賦了初值為1,這裡的i已經與之前的i值沒有關係了.所以不是重定義 你應該先去看下重定義的概念是什麼,要不你還是會弄不明白的 重定義 是指之前已經定義了一個變數,然後在這個變數的作用域內,又定義了一次同名變數...