1樓:
那是給陣列最後乙個元素後一記憶體位址的數字,值是上次使用該記憶體位址的程式寫入的~與陣列沒有關係~
關於c語言陣列的問題,為啥第4行的是a[11],填a[10]可以麼???求高人指點,有什麼區別
2樓:匿名使用者
第四行填10也是可以的,但是你的程式在編寫的時候是申請了11個空間來用的即:a[0]……a[10],但是程式為了操作方便,將a[0]這個記憶體空間捨棄(就是說不適用它),為了咱中國人的思維採取從下標為1開始操作,所以這裡需要申請11個空間,假如你申請的是10(a[10]),編譯是不會錯的,但是你訪問的時候就會發生陣列越界的問題了!
3樓:陽光小胡同
()}正確的寫法應該是上面這樣的。
這裡涉及到2個問題:
1.陣列宣告的時候a[9]就是有9個元素的陣列,a[10]就是有10和元素的陣列
2.陣列賦值的時候第乙個元素的下標是從0開始的,即a[0],最後乙個下標是宣告時的數字-1,如:宣告時:a[9],最後乙個元素是a[8]。a[9]是超範圍的。
4樓:
在c語言中,陣列的下標從0開始編號
int a[11];其中a表示陣列名,方括號中的常量11表示陣列共11個元素,即:a[0],a[1]……a[10]
不能為a[10],否則會出現越界情況
5樓:
什麼第4行?
哪有a[11],a[10]的?
為什麼c語言中二維陣列的陣列名a和*a表示的是同乙個值?
6樓:匿名使用者
當定義二維陣列a[m][n]時,陣列名可以認為是二維指標,其指向二維陣列的首位址。
於是a的值就是首位址的值。
而*a,就是a[0],a[0]是第一行的標記,代表第一行的首位址。
在二維陣列中,所有元素都是緊密排列的,這樣整個陣列的首位址,第一行的首位址,和第乙個元素的首位址,即a, a[0], &a[0][0] 都是相同的。
於是a和*a的值是相同的。
定義乙個整形陣列a[10]輸入10個數為各個元素賦值並輸出其中最大的數
7樓:匿名使用者
#include
void main(){
int i,max,a[10];
scanf("%d",&a[0]);
max=a[0];
for(i=1;i<10;i++)
{scanf("%d",&a[i]);
if(max
執行示例:
c語言中,定義乙個陣列int a[10],a是整個陣列的名字,那麼a裡面應該是存放10個整型資料, 10
8樓:紅藍塞思克
不矛盾啊 a只是代表乙個位址 存放是十個整型數的是一段連續的儲存空間,這段儲存空間的首位址存放到a中也是a[0]的位址
c語言中陣列裡的a[10]={'a'},這個a為什麼可以賦給他變數?
9樓:戶哲茂
char a[10]=可以分成兩步.
char a[10],就是建立位址和空間。
char a[10]=給這個空間賦值,這個公式翻譯過來就是char a[10]=
綜合起來就是
char a[10];
a[0]=97;
任何變數都需要位址,而'a'其實就是變數97,不是字串那樣的位址表示方式,他的位址是系統臨時分配,可以忽略。
10樓:seo自學部落格
我認為應該 是乙個位址,等號右邊是乙個陣列指標應該。然後把這個指標儲存在另一陣列的第11個元素中
c語言陣列宣告問題,C語言中定義陣列時對其全部初始化為1的問題
有初始化的陣列定義可以省略方括號中的陣列大小。例如,下面的 中陣列定義為5個元素 int a 如 char str program 編譯時必須知道陣列的大小。如果陣列大小要根據運 況來確定,可以使用動態陣列 int p int calloc num,sizeof int 一般有四種陣列定義方式,以一...
c語言關於定義二維陣列的問題,C語言中二維陣列的定義問題
焮欣 首先你要理解二維陣列的真正含義,它的第一維就是一組資料的起始位址,第二維就是某組資料中的某個值.其次,你要知道a 4 所表達的意思,是指二維陣列a的每一維都是由4個元素組成的一維陣列.而編譯器可以根據你賦給a的初值個數計算它的第一維長度 元素總個數 4,如果不能整除,則長度加1,此時還應該有幾...
c語言中如何給不確定大小的陣列定義並使用
c語言中沒有明確的 動態陣列 也就是不確定大小的陣列 這個概念,只能用動態記憶體分配來實現,我給你一個思路 建立陣列 用動態分配分配一個指定大小的記憶體 陣列 銷燬陣列 釋放動態分配記憶體 訪問元素 通過記憶體指標間接引用 增加元素 再分配一塊新記憶體區域 大小為增加後的大小 把久區域的元素資料複製...