c語言題目陣列在定義時和引用時所帶的下標有何區別

2021-03-04 03:05:38 字數 6198 閱讀 9417

1樓:匿名使用者

定義時 下標 表示 這個陣列的 總的元素個數。

就是總大小。

引用時候 下標是個 標記。

用scanf("%s") 不能輸入空格的。

gets() 可以

2樓:匿名使用者

定義時指的是元素的個數n,而引用的時候是單個元素,0~(n-1).

使用getline()

3樓:須密夔飛翼

type

a[19];

type

*a=&a[10];

於是,a成為乙個下標為-9~9的type型陣列這東西純粹娛樂用,你剛開始學還是離這些東西遠一點

c語言程式設計問題

4樓:匿名使用者

1.二樓的回答有錯。空格是字元沒錯,但是用%s,例如:scanf("%s",a)輸入字串是將空格專視為輸入結束的標誌屬

,所以用%s輸入,是無法將空格輸給陣列的。

2.定義時的下標是指該陣列的元素個數,而引用時的下標,例如a[1]指的就是第2個元素。

5樓:匿名使用者

有點看不懂你的問題哈!我隨便說說,輸入資料流中輸入空格代表著乙個輸入的結束專,所以

不能直接屬將空格寫入陣列.陣列定義時的下標表示陣列的大小.如int a[5]表示定義乙個具有5個int型數值的陣列.

陣列的陣列名其實是乙個指標,所指位置在陣列的開頭.所以*(a+1)表示陣列第二個數的值

6樓:匿名使用者

1.可以輸入空格的,沒有話說,空格也是字元啊

2.定義時候下標表示容量。 使用時候下標表示索引

7樓:匿名使用者

三樓是對的。

補充一下:用 gets() 輸入時可以將空格輸入。

為什麼在c語言定義陣列時下標必須從零開始呢?

8樓:

為了標新立異.

在c出現以前的流行語言,例如fortran 從1開始,algol可以自由定義下標從幾開始.

c語言定義從零開始.

從零開始對使用者來說沒有自由定義好,但編譯器設計簡單.省事.

9樓:張立斌

yxlovemoney mdffeng l_o_o_n_i_e

回答的都很有道理。

在c語言定義陣列時下標必須從幾開始,並不要緊,因為這是系統定義的。

無論從幾開始,我們都要會用,都要用好。

10樓:匿名使用者

這需抄要從陣列的儲存方式上襲解釋了。

定義乙個bai陣列時,系統會du分配zhi一塊連續的內

dao存,由陣列名指向該塊記憶體的首位址。

引用某個元素時,首先需要計算該元素的位址(及 陣列名 + 下標),然後根據該位址取到相應儲存單元的內容。

所以,如果希望取陣列的第乙個元素,下標必須是0

11樓:匿名使用者

就是這麼規定的,沒為什麼

12樓:匿名使用者

為了方便,不用0的話,反而更複雜。

13樓:匿名使用者

美國人計數一般都從0開始

14樓:匿名使用者

c規定的,沒什麼原因,其他語言定義是從1開始的,只是有點方便

15樓:匿名使用者

就是人要吃

bai飯,為什麼不吃屎du一樣的原因zhi,開個玩笑。

陣列是一段連續的空dao間,要求a[i]就是回求它的位址,然答後找到它。如果從0開始,則a[i]的位址= 首位址 + i*每個資料所佔的長度;如果從1開始,則a[i]的位址= 首位址 + (i-1)*每個資料所佔的長度。

那樣從0開始就更易於計算。

不過真正的還是要問其作者才知道具體意義

在c程式中,如果引用陣列元素時,下標取值超過了陣列的定義,會怎樣?

16樓:楓and影

有時候我也遇到過,輸出地時候才會發現。

超出了定義範圍的元素輸出是不確專

定的,因為他呼叫的是你屬陣列位址之後的位址對應的值。那些地方不知道對應的什麼值。

所以給你個建議,開陣列的時候開大一點。就算要求是10000個數,你也定義到10001,10002那些,避免到時候出現錯誤。

17樓:雨斷情

會出現這樣的錯誤:編譯通過 執行時出錯

在c語言中,引用陣列元素時,其陣列下標的資料型別允許是______。 a.整型常量 b.整型表達

18樓:惡疾臭魚

a和b都對,不過當然是c更完整,就像數人頭,總不可能有一點幾個人頭吧

19樓:明白小子天枰

c 如果是定義陣列長度的話就只能是a 這裡注意題名是引用 還是定義

c語言中的下標是什麼意思?

20樓:非常可愛

c語言中的

下標是定義陣列a和陣列b[n],下標是用在陣列中的;

a[1]和b[1]就是下標相同的乙個元素,陣列a[1]中的數滿足條件的之後就做移位計算,是減小左移,右移增加;

例:inta[5]=;

printf(「%d,%d,%d,%d,%d」,a[0],a[1],a[2],a[3],a[4]);//會輸出1,2,3,4,5

a[0]=10;

printf(「%d」,a[0]);//輸出10;

擴充套件資料基本的算數運算子

(1)、+加法運算或正值運算子

4+4、+5

(2)、-減法運算或負值運算子

6-4、-10、-29

(3)、乘法運算

注意符號,不是x,而是;

(4)、/除法運算

注意符號,不是÷,也不是\,而是/;

整數除於整數,還是整數。1/2的值是0,這個並不是二分之一,不會四捨五入,直接截斷取值;

(5)、%取餘運算

取餘:即兩個整數相除之後的餘數;

注意:%兩側只能是整數,正負性取決於%左側的數值;

21樓:龍之喵喵豬

在c語言中,下標定義為陣列arr和陣列brr[n]。下標用於陣列中。

arr[1]和brr[1]是下標相同的元素。當陣列arr[1]中的數字滿足條件時,將執行移位計算。c語言是向左移動減少,向右移動增加。

例如:int arr[4]=

printf(「%d、%d、%d、%d」、arr[0]、arr[1]、arr[2]、arr[3]);//輸出5、6、7、8

arr[0]=25

printf(「%d」,a[0]);//輸出25擴充套件資料:基本算術運算子

1、+加法或正值運算子:8+8、+9。

2、-減法或負值運算子:7-2、-20、-35。

3、乘法運算:注意標誌,不是x,而是*。

4、除法運算:注意符號不是÷或\,而是/,整數除以整數依然為整數。1/2的值是0,不是二分之一,不會四捨五入,直接去掉小數部分。

5、%取餘操作:取除以兩個整數後的餘數。

注:%的兩邊只能是整數,正負取決於左邊的值。

22樓:匿名使用者

第一:下標是用在陣列中的;

第二:定義陣列的是時候下標是代表陣列的長度,比如 int a[5];就是定義乙個長度為5的存放整型的陣列,陣列是啥?陣列就是集合嘛!

陣列a有5個元素,即a[0],a[1],a[2],a[3],a[4], 一共5個元素奧,此時下標就是第幾個元素的意思。

舉個例子吧:

int a[5] = ;

printf("%d,%d,%d,%d,%d", a[0],a[1],a[2],a[3],a[4]); //會輸出1,2,3,4,5

a[0] = 10;

printf("%d", a[0]); //輸出10現在明白了吧

關於c語言程式設計 的下標是指什麼?

23樓:匿名使用者

比如下標為1的則表示陣列裡的第2個數,陣列的下標是從0開始的。

例如a陣列為[1,2,3],b陣列為[3,3,5],所以a[0]+b[0]=4,a[1]+b[1]=5

24樓:匿名使用者

定義bai

陣列a【】

du和陣列b【】

這個【】zhi就是下dao標符號

a【1】和

b【1】就是下標內相同的乙個元素,然容後陣列a【1】中的數滿足條件的之後就做移位計算,其實就是減小(左移,右移是增加),具體演算法可以看下書上前三章的內容(c語言 譚浩強3版)。

再把相同下標的b【1】中那個元素和移位後的a【1】做加法,把新得到的數存放到第三個陣列c【】中,就這樣。是的。

25樓:匿名使用者

在c語言中,下標用於陣列

的訪問(讀或寫)。

當定義乙個陣列時專,形式為

type array_name[num];

即定義乙個元屬素型別為type,共計num個元素的陣列,名為array_name。

對於標準c語言(ansi c), 陣列長度num必須為常量,但是目前大多數編譯器均擴充套件到可以支援變數。

當訪問陣列元素時,就需要使用下標,格式為

array_name[index]

其中[index]就是陣列的下標,含義為陣列array_name的第index元素。

在c語言中,index是從0開始計數的,所以對於num個元素的陣列,合法下標範圍為0~num-1。

26樓:匿名使用者

比如說a[3]、b[3}這兩個就是下標相同、也就是陣列中括號裡面的數字相同就是下標相同題目的意思不用我說了吧?

好好看看就懂了

27樓:嬴越柯鵬

你說得是陣列下標麼?

定義一維整形陣列

inta[2];

這個一維陣列的下標就是

2它代表這個陣列有3個成員

a[0]

a[1]

a[2]

c語言中,定義陣列和引用陣列時,其陣列的下標的資料型別分別允許是什麼?

28樓:那年丶人已散盡

1、c89/c90標準:定義陣列時下標只允許使用整型、字元型常量,引用陣列時下標可以使用整型、字元型的常量或者變數

2、c99標準:定義陣列時下標可以使用整型、字元型的常量或變數,但變數必須已經賦值;引用陣列時下標可以使用整型、字元型的常量或者變數。以上所說的常量及變數均包含表示式。

擴充套件資料

1、陣列包含給定型別的一些物件,並將這些物件依次儲存在連續的記憶體空間中。每個獨立的物件被稱為陣列的元素(element)。元素的型別可以是任何物件型別,但函式型別或不完整型別不能作為陣列元素。

2、在陣列定義中,可以將元素數量指定為乙個常量表示式,或者在特定情況下,指定為涉及變數的表示式。採用這兩種方式定義的陣列分別被稱為固定長度陣列和長度可變陣列。

3、固定長度陣列可以具有任意儲存類別:可以將它們定義在所有函式的外面或語句塊的裡面,並且可以使用或不使用儲存類修飾符 static。唯一的限制是陣列不能作為函式引數。

乙個傳入函式的陣列引數需要被轉換為指向陣列第乙個元素的指標。

關於c語言陣列引用下標越界問題,希望個大神幫忙解答!

29樓:匿名使用者

二維陣列定義的一般形式為:型別說明符 陣列名 [常量表示式][常量表版達式]

這兩個常量表示式分別指定了二維數權組的行數和列數,程式編譯時據此向記憶體申請空間。

而引用二維陣列的格式為: 陣列名[行下標][列下標],行下標和列下標都是從0開始排序。這裡的下標和上面的常量表示式意義不同,範圍也不同。

以你給的例子來講:

int b[4][5]是定義乙個名為b的二維陣列,它包含4行5列,共20個元素。如果存放陣列b的首位址為p,則記憶體為陣列分配的空間是p~p+19;陣列b的行下標範圍為0~3,列下標範圍為0~4,位址p+19存放的元素為b[3][4]。如果要引用b[4][5],由於沒有提前向記憶體申請位址,則會隨機指向乙個位址,得到乙個垃圾資料,無法實現我們的目的,我們就說是引用下標越界。

在c語言中,定義陣列inta4345678910則a

陣列不能這樣初始化要用逗號,a 0 3 6 這個陣列貌似不對吧 c語言問題 若有說明int a 4 1,2,3,4,5,6,7,8,9 則陣列a第一維 若有說明int a 4 則陣列a第一維是3。定義陣列並賦值時c語言規定下標是這樣的,a n 中的n個元素應該是a 0 a n 1 因此int a 4...

C語言如何定義一維陣列並給陣列賦值

例如 int a 10 列印該陣列 for int i 0 i 0 i printf a i 求陣列中的最大值 int max 0 for int i 0 i個陣列的平均值 int sub 0 for int i 0 i上是純手打 有段時間沒接觸c了 可能關於部分方法使用用點錯 只做借鑑 希望可以幫...

在c語言中若有定義,在c語言中,若有定義inta1,b2,c3,d4,x5,y6,則表示式xa

inta 1,b 2,c 3,d 4,x 5,y 6 則表示式 x a b y c d a b 不成立 則為假為0,x 0.符號要求倆個都為真才輸出真,所以表示式為假等於0 在c語言中,若有定義 int y 3,x 7 1,2,3,4,5,6,7 則表示式y x 5 的值 為 求解釋。定義乙個整形陣...