1樓:莊政警
你如果用vc6的話,bai這樣是du不行的,因為vc6有自己的zhi一套標準
dao,不遵守c/c++標準
vc2002以後的版本就正內常了
vc6這種情況可以用枚容舉常量代替const常量:
enum ;
int a[n];
2樓:匿名使用者
int const n=5;
儘管n的值是常量5,不允許通過n改變,但是 ,並不等於n的值不能改變,實際上可以通過指標對其內值進行修改,比如int *p=&n; *p=12; 這樣那個就修改了n的值(將&n賦值給p的時候編譯器可能會發出警告),所以n是一個變數,容是一個特殊的變數,被稱為常變數。
因此,n不是一個常量,只是一個不能通過n來修改其值的一個變數。所以不能用它來給定陣列的大小。
3樓:匿名使用者
陣列用常數定義大小就行
c語言 定義陣列時 大小必須是常量嗎
4樓:yesyes科
1、首先雙擊啟bai動visual studio 2015,單擊「檔案du」-「新建」-「專案zhi」,dao選擇visual c++,然後是「空專案」。
回2、定義了2個一維陣列,一個名為
答arry1的整形陣列,有1個元素;arry2為實型陣列,有100個元素,注意陣列下標是從0開始的,不是從1開始,比如arry1的第一個陣列為arry[0]不是arry[1]。
3、對陣列賦值或者部分賦值,第一個表示x[0]=1,x[1]=2,x[2]=3,x[3]=4,x[4]=5;第二個表示對前三個元素賦值,後面的元素都為0,x[0]=1,x[1]=2,x[2]=3,x[3]=0,x[4]=0。
4、一般形式:陣列名[下標1][下標2],下標也是從0開始表示是第一個元素。
5、最後對二維陣列賦值:int x[2][2] = , }表示x[0][0]=1,x[0][1]=2,x[1][0]=3,x[1][1]=4,x[0][0]表示第一行第一列,其他依次類推即可。
5樓:匿名使用者
哈哈,樓上的兩位真有意思,
一個咬定是"唯一的辦法",一個還吹捧的勁兒內勁兒的
動態陣列的malloc和realloc都不容知道吧。
這麼做就可以了:
既然是記錄條數,那麼一定是一個整數,用動態陣列就可以實現。
#include
void main()
6樓:匿名使用者
c語言中,直來到c99標準出現之前,
自宣告陣列時在方括bai號內只
du能使用整數常量表示式。zhi
而c99做了dao很大改進,允許陣列的[ ]中的值是整形變數或是整形表示式。如:
int n;
scanf ("%d", &n);
int array[n];
雖然n確實是需要執行時動態確定的變數,但是在c99中,以這種變數作為陣列大小的形式已經是允許的了。這樣的陣列就被稱之為「變長陣列」。
注意:變長陣列是指用整型變數或表示式宣告或定義的陣列,而不是說陣列的長度會隨時變化,變長陣列在其生存期內的長度同樣是固定的。
7樓:紅山人
嗯.樓上說的是.這是復通常採用的辦製法.
用預編譯命令,在程式檔案的開關,定義一個常量,如這次你使用這個程式時記錄數是一百,你就可以定義:#define max 100,之後,你就可以定義陣列如a[max]下次你再使用這個程式時,記錄數是200,你只要修改一下這裡就可以了.朋友.
8樓:匿名使用者
是的.可以這樣:
#include
#includenum是變數.
int *a=(int *)malloc(num*sizeof(int));
改變大小
專:a=realloc(a,num2*sizeof(int));
用完屬後
free(a);
9樓:匿名使用者
用#define 在開頭申明,這是唯一的辦法
請問定義陣列時長度可以用邏輯表示式嗎? 比如題目給一個常數n,可以int a[n/2]這麼定義嗎?
10樓:匿名使用者
不能在方括號中用變數來表示元素的個數,但是可以是符號常數或常量表示式!
這是陣列的定義,n在程式裡邊應該不是常量型別儲存的。你說的n為常數,也是自己另外賦值的,它本質上還是一個變數。
定義為n是可以的
c語言陣列名後面那個中括號[ ]裡可不可以是表示式?為什麼
11樓:匿名使用者
我覺得陣列的【】括號中的一定是常量,否則在編譯器無法設定記憶體空間。所以可以是表示式,但是應該是常量表示式,不能是變數。
12樓:淦海瑤
可以,但是要注意一點,
這個表示式返回值一定要是正整數或者零
其他的都是錯誤的
給你舉個例子吧
如求一個數字字串中數字出現的頻率
char a[100];
int b[10]=;//計數數字出現的次數int i=0;
gets(a); //輸入數字,否則有可能出錯,因為b的下標超過9while(a[i])
b[a[i++]-'0']++; //這裡a和b的下標都是表示式
a的下標是i++,是正整數或零
b的下標是a[i++]-'0'是a[i]中的數字的ascii碼值減去0的ascii碼值,是0~9
13樓:1個魜_等待
陣列必須先分配記憶體空間才能使用,所以初始化的時候不能是表示式,但是卻可以這樣用:
int a[11]; for(int i = 10; i>5; i--) a[i-5] = 1;
14樓:周碧嬌是我老婆
「」中間必須是整形常量或整形常量表示式。
陣列定義時,必須指定陣列的大小,陣列大小必須是整形常量表示式,不能是變數或者變數表示式
錯誤例子:int n=10; int a[n]; int b[10.3]; int c[n+10];
15樓:匿名使用者
可以是返回值為正整數的表示式
c語言中,陣列中,陣列必須是陣列名常量表示式,對於陣列中元素的下標,下標能不能是變數?如圖,書上沒
16樓:我個去又被註冊
可以的,但是注意這個變數的取值範圍——在這個例子裡,得確保 i 是0到9的整數回,不然會出錯。答
另外,宣告陣列不能用變數的原因是,陣列一旦宣告就確定了(記憶體安排好了)。下標就可以用變數,呼叫的時候就顯得更方便靈活。
17樓:bbk臨兵
下標當然可以是變數,甚至還可以是表示式。
C不能宣告陣列,C 宣告未定義大小陣列string i 然後向裡面賦值,該怎麼做呢?
你那樣宣告陣列是不可以的 namespace hw0815 private void btnmove click object sender,eventargs e char c 下面要初始化的話就放到函式裡面 namespace hw0815 private void btnmove click ...
C b s定義不確定大小的一維陣列
那就不要用陣列。用arraylist或list。這種資料結構容量是不確定的。等你構造好之後有必要的話用很方便就能轉換為陣列。arr new a b object obj 這樣就可以得到一個陣列了。string fn 在用的時間,可以。fn new string n n是自定義的整數。嗯。我支援直接用...
什麼是陣列?為什麼要定義陣列,有什麼用。拜託各位大神
開谷菱 什麼是陣列 陣列就相當於糧倉 陣列裡面的資料就相當於糧倉裡面的每一粒稻穀 為什麼要定義陣列 節省記憶體,沒定義一個變數,系統就會在記憶體中劃分一個空間來存放該資料,這麼說,記憶體相當於家,如果沒有糧倉,那麼家裡沒收穫一粒稻穀,那麼 家就要專門找個位置來放稻穀,如果有了糧倉,家就可以把稻穀全放...