1樓:不zai暖心
c++: 全域性變數中沒有任何區別,函式中第一個輸出時會輸出0,而第二個不定。
2樓:鄭成功文庫
前者是抄在記憶體中開闢了一塊襲叫做a的內bai存空間,裡面存放
du0;後者表示zhi將要開闢記憶體空間了,dao但是還沒有開闢簡單的說,int a=0相當於建了一座倉庫,然後再裡面裝了貨物而 int a相當於拿到了一塊地契,留著以後要建倉庫用的
3樓:匿名使用者
編譯的時候,兩copy者都被分配了記憶體bai空間,只du
是前者在分配完zhi以後,順手把裡邊的內容設定為dao0,而後者,還保留了一個隨機的數字。這個隨機數字,可能是開機的時候隨機產生的,也可能是別的程式使用過以後釋放的。
當然在有一些編譯器裡,一旦定義了int a;會自動幫你設定成0.
4樓:
前者定義同時進行了初始化,後者只定義了。
c語言程式設計 int *a和int a [ ]有區別嗎?
5樓:a羅網天下
int *a是定義一個整型指標變數a。
int a [ ]沒有這種寫法。
int *a
1、定義a是一個陣列。
2、每一個陣列的元素是一個指標,指向一個整數。
(int *)a 將指標變數a強制轉換為整型指標,說明a一般不是一個整型指標,也可以是個整型指標。
int (*a)
1、定義a是一種指標。
2、a指向一種整數陣列。
陣列的建立:在建立陣列時,我們必須定義陣列的型別和大小,陣列的大小不能為0,陣列中的元素型別都是相同的。
int arr[10];//內必須是常量/常量表示式(3+8),不能是一個變數(x...)
陣列的初始化:在陣列建立時,我們也要必須為陣列初始化。
int arr1[3] = ;
int arr2 = ;//在這裡,我們arr[3]裡邊的數字可以不用寫;
int arr3[3] = ;//也是可以的,只是把最後一個數初始化為0了而已
int arr4[3] = ;//是不可以的,不能超過陣列長度
char arr5[3] = ;//因為是字元型別,所以98其實就是字元'b'
char arr6 = "abcdef";
特點
1、陣列是相同資料型別的元素的集合。
2、陣列中的各元素的儲存是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起。
3、陣列元素用整個陣列的名字和它自己在陣列中的順序位置來表示。例如,a[0]表示名字為a的陣列中的第一個元素,a[1]代表陣列a的第二個元素,以此類推。
6樓:匿名使用者
int *a和int a [ ] 的區別,就等價於指標與陣列的區別。
指標與陣列的區別:
1、指標的本質是一個與地址相關的複合型別,它的值是資料存放的位置(地址);陣列的本質則是一系列的變數。
2、陣列名對應著(而不是指向)一塊記憶體,其地址與容量在生命期內保持不變,只有陣列的內容可以改變。指標可以隨時指向任意型別的記憶體塊,它的特徵是"可變",所以我們常用指標來操作動態記憶體。
3、當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。
7樓:落楓秋痕
int a 這樣的定義是不符合語法的吧。除非 後面這樣寫int a=;
int *a;則是 指定義一個int 型別的指標 用來指向一個用來存放int型資料的地址。
陣列名 所表示的意思是 該陣列起始地址。不是有沒有區別的問題。它們根本是在不同的情況下使用的。
你可以用陣列名錶示陣列第n個元素 *(a+(n-1)) 你也可以定義 一個指標指向 第n個元素
int *p=&a[n-1];
***********************************====
你所給的例子中使用是合法的 形參表示型別。int a表示一個整型陣列。
8樓:盤國英譚婷
int*a指的是定義一個指向int型別資料的指標a,inta指的是定義一個整數變數a,
int*
a跟int
*a是一樣的,只是int
*a更嚴謹,
比如,int
*a,b;
只有a是指標變數
int*
a,b;
容易讓人覺得a和b都是指標
9樓:圭時芳哈霜
int*a[5]是指標陣列,int(*a)[5]是陣列指標,前者表示一個陣列,陣列元素都是指向int型變數的指標,後者表示一個指標,該指標指向一個int型有5個元素的陣列,希望對你有所幫助
10樓:匿名使用者
一樣。陣列名就是指向陣列首元素的指標。
比如說吧,
int a[100];
那麼 a 就是 指向 a[0] 的指標。
也就是 a==&a[0]
11樓:德昂當
int a[n] 會分配一塊儲存n個int型資料的區域。
int *a; 則不會
void fun(int a, int n) //函式傳遞陣列引數時,要傳遞的是陣列的地址,int a這不是地址
void fun(int *a, int n) //要這樣寫
12樓:想買好東東
若你只寫int *a,只是定義了一個指標還沒有為陣列分配空間,後面還要new空間
而int a應該已經分配空間了
13樓:匿名使用者
在c語言裡,int a這種寫法是錯誤的。中括號內必須有正整數值,表示陣列中有多少個元素。
int *a,是定義了一個指標變數叫a,這個a指向的記憶體單元中存放的是一個整數。
int a[10],是定義了一個陣列變數a,該變數佔據10個整數的儲存空間,存放了10個整數。
14樓:匿名使用者
int a [ ]是一個放int型資料用的陣列
int *a是一個int型別的指標
int a[10];和 int a[10]={0};有什麼區別?表示的是不是都是全部陣列元素置零?
15樓:匿名使用者
前者只是定義,其值不可預料;
後者是全部陣列元素置零。
16樓:曾經半夏
第一個只是定義,第二個將全部元素賦值為0
17樓:匿名使用者
第一個是定義一陣列整型變數a裡邊有是個數哦。
後邊的這個是定義了一陣列然後給他們賦予相同的值0.
c語言中inta為啥不對,C語言中inta0為啥不對????
對啊,怎麼不對?宣告int型陣列a,並用一個整型資料0初始化,這個陣列只有一個元素a 0 其值是0,有什麼錯?c語言對陣列的初bai始化賦值還有以下幾點du規定 zhi1 可以只給部分元素賦初值dao。當中值的個內數少於元素個數時,只 給前面部分元素賦值。例如 int a 10 表示只給容a 0 a...
c語言 inta 是什麼意思,C語言 int a 是什麼意思
int a的時候,編譯器不會給a分配記憶體空間,因為它只是另一個變數的標記 a是存放a的記憶體地址,比如變數a 1,a就等於存放這個1的記憶體地址的數值 例 include intmain intb 5 int p1 a int p2 a printf b d b d n b,b getch ret...
c語言的題int a 41,2,3,4,
答案a.陣列復定義是a 0 1,a 1 2,a 2 3,a 9 10 a.p 2使p指向 a 2 p 表示先製取 p的值,然後 p增加1 指向a 3 所以取得的值是a 2 3 b.p 2使p指向a 2 p表示先p增加1 指向a 3 然後取 p的值,所以是a 3 4 c.p 3使p指向a 3 p 表示...