c語言數組下標是變數
㈠ c語言中每個變數或者元素都有下標,下標的作用是什麼謝謝
C語言中變數或者元素都有下標,是因為表示數組的某個元素,比如a[4],表示數組的第5個元素,數組元素下標是從0開始的。
㈡ c語言中,數組元素可以是變數或表達式嗎
數組元素 可以賦值為變數或表達式。
但實際存儲的只能是最終運算的值。
比如 賦值
a[0]=1+2;
那麼a[0]的值就是3. 無法得知這個3是怎麼計算過來的。
㈢ c語言中數組的下標可以是字元嗎代表什麼意思
C語言數組的下標只能是合法的整型值。
當下標為字元時,有兩種可能:
1
以字元常量作為下標。如a['A'];表示'A'的ascii碼對應的數組偏移量。在實際應用中不常見,但是從語法上來說是合法的。
2
字元本身為變數。如
int
i;
int
a[100];
for(i
=
0;
i
<
100;
i
++)
printf("%d\n",
a[i]);
這里的a[i],下標就是i,本質上i是一個變數,訪問的時候是根據變數值進行訪問對應元素的。
㈣ 數組下標用變數
對於ANSI 標准C及C++,這都是標准沒有定義的,也就是說,最好認為不可以用變數代入數組個數
C99標准中加入了這個特性,但C99標准還未流行。
對於C++編譯器,gcc擴充了這個功能,但是它未被標准支持所以這樣的程序是不具備編譯可移植性的。早期的vc++6.0不支持此特性。
但是你若在c++中定義const int n = 5;
則可以int a[n];
因為c++中,const型變數是作為編譯時常量的。
但在ANSI C中卻不行,因為C中const型變數是作為只讀的變數出現的,所以不能用其定義數組個數
雖然在匯編的角度看,int a[n];這種語句即使n是變數,也是很好實現的,但c/c++出於多種考慮(例如n的不確定性以及樓上提到的一點原因)拒絕了它
要模擬動態數組,最好使用new,malloc類似函數動態分配內存,這樣的程序才是最安全的
-----------------------------------------------------------------
樓主,我看大師Steve Summit的書,他告訴我說去在意不同的編譯器之間的對標準的支持程度的不同是沒多大意義的。我們只需知道ANSI C/C++兩者的標準定義行為,對未定義行為及不確定行為不同的編譯器有不同的實現與擴展,也盡量不要去用,盡管某些編譯器出於好意擴展了某些行為
-------------------------------------------------------------
這里看到了對宏的討論。宏是預處理器管的范疇,而非編譯器的范疇
要想真正理解以上所有這些,請看大師的書:《C Programming FAQs》與《C++ Primer》,前者對應C,後者對應C++。
單在這里討論是理解不了的
㈤ C語言數組的下標
c語言中的下標是定義數組a[]和數組b[n],下標是用在數組中的;
a[1]和b[1]就是下標相同的一個元素,數組a[1]中的數滿足條件的之後就做移位計算,是減小左移,右移增加;
例:
inta[5]={1,2,3,4,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;
(5)c語言數組下標是變數擴展閱讀
基本的算數運算符
(1)、+加法運算或正值運算符
4+4、+5
(2)、-減法運算或負值運算符
6-4、-10、-29
(3)、乘法運算
注意符號,不是x,而是;
(4)、/除法運算
注意符號,不是÷,也不是,而是/;
整數除於整數,還是整數。1/2的值是0,這個並不是二分之一,不會四捨五入,直接截斷取值;
(5)、%取余運算
取余:即兩個整數相除之後的余數;
注意:%兩側只能是整數,正負性取決於%左側的數值;
㈥ C語言問題:定義數組時,下標可不可以是變數
你將這個代碼放到編譯器裡面就知道了..會報錯的.!
定義下標後就會分配內存.要是你的下標變大了之後內存放不下了就會出錯..
㈦ c語言中,定義數組和引用數組時,其數組的下標的數據類型分別允許是什麼
1、C89/C90標准:定義數組時下標只允許使用整型、字元型常量,引用數組時下標可以使用整型、字元型的常量或者變數
2、C99標准:定義數組時下標可以使用整型、字元型的常量或變數,但變數必須已經賦值;引用數組時下標可以使用整型、字元型的常量或者變數。以上所說的常量及變數均包含表達式。
(7)c語言數組下標是變數擴展閱讀
1、數組包含給定類型的一些對象,並將這些對象依次存儲在連續的內存空間中。每個獨立的對象被稱為數組的元素(element)。元素的類型可以是任何對象類型,但函數類型或不完整類型不能作為數組元素。
2、在數組定義中,可以將元素數量指定為一個常量表達式,或者在特定情況下,指定為涉及變數的表達式。採用這兩種方式定義的數組分別被稱為固定長度數組和長度可變數組。
3、固定長度數組可以具有任意存儲類別:可以將它們定義在所有函數的外面或語句塊的裡面,並且可以使用或不使用存儲類修飾符 static。唯一的限制是數組不能作為函數參數。一個傳入函數的數組參數需要被轉換為指向數組第一個元素的指針。
㈧ c語言中用數組能表達下標a嗎
不能表示a數組元素的表達式是( B) a[10] )----因為數組a的最大下標只能是9,即a[9],
a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],一共10個元素。
A、*p ---表示取p指針指向的單元的值,即表示取數組a的首個元素a[0]的值。
B、a[10] ---因為數組a一共10個元素,從0開始計數,
即a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],正好10個,沒有a[10],所以a[10]就是不能表達這個數組元素。
C、*a ----數組名a中保存的是數組的首地址,*是取單元中的值,*a就是取數組首地址中單元中a[0]的值。
D、a[p-a] --- p指向的是數組a,因為p中與a同數據相同都是數組a的首地址,而p-a就等於0,因此 a[p-a]就相當於a[0]。
(8)c語言數組下標是變數擴展閱讀:
數組元素也是一種變數, 其標識方法為數組名後跟一個下標。下標表示了元素在數組中的順序號。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。在C語言中只能逐個地使用下標變數,而不能一次引用整個數組。
數組元素的一般形式為:
數組名[下標]
其中下標只能為整型常量或整型表達式。如為小數時,C 編譯將自動取整。
例如:
a[5]
a[i+j]
a[i++]
都是合法的數組元素。
㈨ c語言中,數組中,數組必須是數組名常量表達式,對於數組中元素的下標,下標能不能是變數如圖,書上沒
可以的,但是注意這個變數的取值范圍——在這個例子里,得確保 i 是0到9的整數,不然會出錯。
另外,聲明數組不能用變數的原因是,數組一旦聲明就確定了(內存安排好了)。下標就可以用變數,調用的時候就顯得更方便靈活。