C老師說定義陣列時不允許intn5inta

2021-05-29 04:41:58 字數 3082 閱讀 4769

1樓:匿名使用者

對的後一直方式和 int a[5]是等效的有個小問題

#define n 5;

應該是#define n 5

5後邊加分號就錯了

2.()是正確的陣列定義。 a)int n=5;int arr[n]; b)int n;n=5;int arr[n];

2樓:

要建立數bai組應指出以下三點:du

(1)每個zhi

元素值的型別

(2)陣列dao名專

(3)陣列中的

元屬素數。

其中陣列中的元素數要求在編譯時都是已知的,而變數的值都是在程式執行時設定的,所以陣列中的元素數不能使用變數來設定。

a,b,c都是同一個錯誤。

d對,因為巨集編譯時就替換了。

3樓:計男

這題是選baic吧,不贊同樓上du的看法,c沒什麼問題,反zhi而是d,他說巨集定義dao

了,但是題中明顯版沒有巨集定義,不權會是把另一個題的答案照搬過來的吧,d必須在選項前有define n 5才對

abd其實變來變去都是一樣的,問題就出在不能對陣列進行動態定義!

int n=5,a[n];有什麼錯誤

4樓:務曜燦阮莘

intn=5,a[10];

//定義陣列a,可容納10個元素。

a[n]=20

;這句相當於給a[5]這個位置賦值20,有什麼不合法的?

5樓:匿名使用者

a[n]這個不對

你是想定義整型陣列吧,定義陣列時不能用變數來指定陣列長度,要麼寫a[5],要麼把n定義為常量

#define n 5

程式設計驗證,定義陣列時可以用變數確定陣列元素的長度嗎?(int n=5; int a[n];)

6樓:陽光的雷咩咩

c語言不行。可以用巨集實現類似的功能。但不可以在執行時改變陣列大小。功能上可以用malloc代替。

關於c語言陣列的方括號中能不能使用變數的問題。

7樓:四舍**入

方括號裡必須是一個大於零的整數常量或者常量表示式。

常量表示式(const experssion):是指值不會改變專 並且在編譯過屬程就能得到計算結果的表示式。字面量屬於常量表示式,用常量表示式初始化的const物件也是常量表示式。

一個物件(或表示式)是不是常量表示式由它的資料型別和初始值共同決定。

const int a =1; //常量表示式cosnt int b=a+1; //常量表示式int c=2; //初始值是字面值常量,當c資料型別是普通int。

8樓:匿名使用者

陣列的方括號復有兩種使用制情況。

1 定義。

當用於定義時,bai陣列方括du號中的是陣列含有的元素個zhi數,即定dao

義了陣列的規模。

這種情況下,按照ansi c的標準,是不可以用變數的。

不過目前有些編譯器支援了c99及以上規範,在c99下,c語言陣列定義時可以使用變數。

至於編譯器是否支援,定義一個以變數為規模的陣列,編譯一下,如果能通過,那麼就是支援的,反之則是不支援。

由於並不是所有編譯器支援,這樣的**就不易於移植,所以不推薦使用這種寫法。如果一定需要用動態值,可以採用動態陣列的方式。

2 取值。

當取陣列a的第n個元素值時,可以使用a[n]的方式。

這種取值操作的情況下,是可以使用變數的。對此,任意版本的c語言都沒有做限制。

不過其中的變數只能為整型系列的型別,比如char, short, int, long等,或者對應的無符號型別。

9樓:匿名使用者

其實baic語言的較新版本標準

是支援du

int n=5;

int a[n];

的用法的,只是vc一直只zhi支援舊版本的標準dao而已……不過對回於這個問題,原答因不是這個。int a[n];是物件宣告,a[i++]=i;是表示式中的運算,二者是完全不同的東西……

10樓:匿名使用者

好多大學課本教程是老版的c語言了,在vc++6.0編譯器裡(好多年前的編譯器了,已經沒有更新了),int a[n]是錯誤的,用別的編譯器就沒事,比如dev c++

11樓:匿名使用者

這句話你要仔細理解,人家說的是對陣列的「定義」不能用動態定義,就是說陣列在定義時不能依賴於程式執行過程中變數的值,第二個例子並不是對陣列定義而是陣列運算

12樓:匿名使用者

是宣告的時候不能用變數去指定初始大小,訪問的時候是可以的

13樓:匿名使用者

陣列,沒好好看啊,定義和使用的區別

14樓:為明天_小樂

上面的為一個陣列的宣告,而n為5,如果按照main中的執行順序的話看上去是沒有問題的..並且版有的編譯權器也支援(例如dev--c++)但是a是一個陣列,在編譯的時候其需要一個特定的大小來讓系統為其分配記憶體空間,,它與下面的i++不同,在i++操作之前,a陣列的大小已經固定了,所以可以通過.

15樓:匿名使用者

只是定義

bai的時候不能用變數

du。a[i++]這是你前面zhi已經定義好了的dao a[10]。記住!!

a[ ]方括號內可以專用變數,只是定義屬的時候不能用變數。如果一定要用字母表示可以這樣寫:#define n 5

int main()

n其實也是前面定義的一個常量。

16樓:匿名使用者

int a[n],是在定義一個陣列,而陣列的長度為n,n是一個變數,這在c語言是不允許,c語言不支回持定義變長答陣列,因為在編譯的時候,系統無法知道陣列的長度是多少,也就無法為這個陣列分配一個空間。

解決的方法有:

1、#define n 5

int main()

2、#include

int main()

c語言中定義有元素的整型陣列,C語言中,定義一個有100個元素的整型陣列inta100,然後用迴圈產生100個隨機數求大神幫助

include include int main 注意,編譯文 du件字尾必zhi須是.c檔案。希望採dao納 c語言如何srand和rand函式產生10個1 100內的隨機數 需要準備的材料分別有 電腦 c語言 編譯器。1 首先,開啟c語言編譯器,新建一個初回始.cpp檔案,例如答 test.cp...

C語言陣列如何定義起始下標是不是若不定義一般起始下標都是

c語言陣列無法定義起始下標,只能是從0開始,到 元素個數 1 結束,超越這個範圍就是越界訪問。c 和c 可以實現自定義起始下標。不論在任何bai程式語言,如果沒du有定義起始zhi下標預設都是從 dao0開始 在c語言中不能自定回義起始下標,要想下答標與陣列元素的序號一一對應只能捨棄第一個儲存空間。...

在C語言中定義二維陣列long a,則陣列佔多少位元組的儲存空間

c語言中long佔4個位元組,所以longa 3 5 佔4 3 5 60個位元組 從元素角度理解a代表a 0 0 從二維陣列理解a代表a二維陣列名,即二維陣列首地址 從一維陣列角度理解a代表a 0 即二維陣列第一行看作一個一維陣列,a 0 為這個一維陣列的首地址 a 1 從二維陣列看代表a 1 0 ...