1樓:匿名使用者
函式形參中int sorce其實相當於int* sorce,所以是指標而不是陣列,不信你可以在函式內改變形參sorce的值,而陣列是不可以重新賦值的。c++是不接受陣列作形參的。
2樓:
可以在定義陣列的時候直接賦值,那樣就可以省略了列如
int a = ;
3樓:
陣列定義時必須確定長度,系統才知道給它分配多少記憶體。
陣列作為引數傳遞時實際上傳的是陣列首地址,即一個指標常量所以函式也可以這樣定義
long sum(int *sorce)
4樓:匿名使用者
該中括號為陣列標識。
c語言支援定義一系列相同連續的變數空間,其定義形式為type name[n];
代表定義個數為n,每個元素型別均為type型的陣列變數name。
int a[100]就是定義一個元素個數為100個的整型陣列a。
對於a中元素的呼叫同樣是通過中括號對來實現的,當呼叫a[n]時,代表第n個元素。
需要注意的是,在c中規定,陣列元素的下標n是從0開始計數的,所以對於定義的a[100], 其合法的元素為a[0], a[1], ... , a[99]。
5樓:楊志回憶
加 陣列會用到,,,
c語言中中括號什麼意思?[ ]
6樓:9點說史
該中括號為陣列標識。
int a[6];就是定義一個一維陣列,這個陣列名叫做 a ,共有
內6個元素;同理int b[6][6];就是定容
義一個二維陣列,這個陣列共有6*6個元素。
定義之後,就可以引用該陣列的元素,但不能直接用 a[6] ,a此時包含的元素只有a[0],a[1],a[2],a[3],a[4],a[5]這6個。
c語言支援定義一系列相同連續的變數空間,其定義形式為type name[n];代表定義個數為n,每個元素型別均為type型的陣列變數name。
在c中規定,陣列元素的下標n是從0開始計數的,所以對於定義的a[100], 其合法的元素為a[0], a[1],.... , a[99]。
擴充套件資料
識別符號(identifier)是指用來標識某個實體的一個符號,在不同的應用環境下有不同的含義。在計算機程式語言中,識別符號是使用者程式設計時使用的名字。
用於給變數、常量、函式、語句塊等命名,以建立起名稱與使用之間的關係。識別符號通常由字母和數字以及其它字元構成。
7樓:哇哎西西
中括號為陣列標識bai。
例如:放入4個整du數,就得分
zhi配dao4個int型別的記憶體空間:內int a[4];
這樣,就在容記憶體中分配了4個int型別的記憶體空間,共 4×4=16 個位元組,併為它們起了一個名字,叫a。
8樓:匿名使用者
陣列的下標
比如du你說zhi的
int a[6];
就是dao定內義一個一維陣列容,這個陣列名叫做 a ,共有6個元素同理int b[6][6]
就是定義一個二維陣列,這個陣列共有6*6個元素定義之後,就可以引用該陣列的元素,但不能直接用 a[6] ,a此時包含的元素只有a[0],a[1],a[2],a[3],a[4],a[5]這6個
9樓:匿名使用者
陣列。表示有6個int型的資料,從a0到a5
10樓:匿名使用者
定義陣列a,陣列中包含6個數
關於c語言陣列的方括號中能不能使用變數的問題。
11樓:四舍**入
方括號裡必須是一個大於零的整數常量或者常量表示式。
常量表示式(const experssion):是指值不會改變專 並且在編譯過屬程就能得到計算結果的表示式。字面量屬於常量表示式,用常量表示式初始化的const物件也是常量表示式。
一個物件(或表示式)是不是常量表示式由它的資料型別和初始值共同決定。
const int a =1; //常量表示式cosnt int b=a+1; //常量表示式int c=2; //初始值是字面值常量,當c資料型別是普通int。
12樓:匿名使用者
陣列的方括號復有兩種使用制情況。
1 定義。
當用於定義時,bai陣列方括du號中的是陣列含有的元素個zhi數,即定dao
義了陣列的規模。
這種情況下,按照ansi c的標準,是不可以用變數的。
不過目前有些編譯器支援了c99及以上規範,在c99下,c語言陣列定義時可以使用變數。
至於編譯器是否支援,定義一個以變數為規模的陣列,編譯一下,如果能通過,那麼就是支援的,反之則是不支援。
由於並不是所有編譯器支援,這樣的**就不易於移植,所以不推薦使用這種寫法。如果一定需要用動態值,可以採用動態陣列的方式。
2 取值。
當取陣列a的第n個元素值時,可以使用a[n]的方式。
這種取值操作的情況下,是可以使用變數的。對此,任意版本的c語言都沒有做限制。
不過其中的變數只能為整型系列的型別,比如char, short, int, long等,或者對應的無符號型別。
13樓:匿名使用者
其實baic語言的較新版本標準
是支援du
int n=5;
int a[n];
的用法的,只是vc一直只zhi支援舊版本的標準dao而已……不過對回於這個問題,原答因不是這個。int a[n];是物件宣告,a[i++]=i;是表示式中的運算,二者是完全不同的東西……
14樓:匿名使用者
好多大學課本教程是老版的c語言了,在vc++6.0編譯器裡(好多年前的編譯器了,已經沒有更新了),int a[n]是錯誤的,用別的編譯器就沒事,比如dev c++
15樓:匿名使用者
這句話你要仔細理解,人家說的是對陣列的“定義”不能用動態定義,就是說陣列在定義時不能依賴於程式執行過程中變數的值,第二個例子並不是對陣列定義而是陣列運算
16樓:匿名使用者
是宣告的時候不能用變數去指定初始大小,訪問的時候是可以的
17樓:匿名使用者
陣列,沒好好看啊,定義和使用的區別
18樓:為明天_小樂
上面的為一個陣列的宣告,而n為5,如果按照main中的執行順序的話看上去是沒有問題的..並且版有的編譯權器也支援(例如dev--c++)但是a是一個陣列,在編譯的時候其需要一個特定的大小來讓系統為其分配記憶體空間,,它與下面的i++不同,在i++操作之前,a陣列的大小已經固定了,所以可以通過.
19樓:匿名使用者
只是定義
bai的時候不能用變數
du。a[i++]這是你前面zhi已經定義好了的dao a[10]。記住!!
a[ ]方括號內可以專用變數,只是定義屬的時候不能用變數。如果一定要用字母表示可以這樣寫:#define n 5
int main()
n其實也是前面定義的一個常量。
20樓:匿名使用者
int a[n],是在定義一個陣列,而陣列的長度為n,n是一個變數,這在c語言是不允許,c語言不支回持定義變長答陣列,因為在編譯的時候,系統無法知道陣列的長度是多少,也就無法為這個陣列分配一個空間。
解決的方法有:
1、#define n 5
int main()
2、#include
int main()
C語言陣列問題
二維陣列儲存的形式你應該知道吧,上面那個儲存成a 0 2 4 a 1 6 7 a 2 1 3 a 3 5 9 a本身是陣列的首地址,a 1中1是偏移量。在這個二維陣列裡,每行有兩個數,偏移量就自動成了8 每個int佔4個位元組,兩個就是8個 這是c語言的一種處理。a表示取a的地址裡的值,這個值還是地...
C語言陣列的問題
小海鬼 在c語言裡有字元陣列的說法,我想問的是那有沒有字串陣列這個說法呢?答 c語言因為沒有字串型別 c 裡有 所以c語言處理字串的時候,需要把字串中的字元存到一個陣列裡頭,藉助陣列這個工具來對字串進行一系列的處理。那麼怎末標識一個字串呢,記住,字串必須是以空字元結尾的。空字元是 0 有的時候也可以...
c語言指標與陣列問題,c語言陣列與指標相關問題,謝謝
這個問題關鍵在於理解指標為什麼要有型別。其實不同型別的指標本質上都是一樣的,即記憶體地址,地址本身是沒有型別的,賦予指標型別的意義在於給出儲存資料的位元組寬度,也稱資料對齊寬度。比如 int pt,pt是一個整數指標,那麼編譯器便知道如果通過pt讀取資料時需要一次讀取4位元組,因為那裡存放著一個in...