inta0和inta區別,c語言程式設計inta和inta有區別嗎?

2021-05-30 21:41:42 字數 3361 閱讀 4363

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 表示...