1樓: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的第二個元素,以此類推。
2樓:匿名使用者
int *a和int a [ ] 的區別,就等價於指標與陣列的區別。
指標與陣列的區別:
1、指標的本質是一個與地址相關的複合型別,它的值是資料存放的位置(地址);陣列的本質則是一系列的變數。
2、陣列名對應著(而不是指向)一塊記憶體,其地址與容量在生命期內保持不變,只有陣列的內容可以改變。指標可以隨時指向任意型別的記憶體塊,它的特徵是"可變",所以我們常用指標來操作動態記憶體。
3、當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。
3樓:落楓秋痕
int a 這樣的定義是不符合語法的吧。除非 後面這樣寫int a=;
int *a;則是 指定義一個int 型別的指標 用來指向一個用來存放int型資料的地址。
陣列名 所表示的意思是 該陣列起始地址。不是有沒有區別的問題。它們根本是在不同的情況下使用的。
你可以用陣列名錶示陣列第n個元素 *(a+(n-1)) 你也可以定義 一個指標指向 第n個元素
int *p=&a[n-1];
***********************************====
你所給的例子中使用是合法的 形參表示型別。int a表示一個整型陣列。
4樓:盤國英譚婷
int*a指的是定義一個指向int型別資料的指標a,inta指的是定義一個整數變數a,
int*
a跟int
*a是一樣的,只是int
*a更嚴謹,
比如,int
*a,b;
只有a是指標變數
int*
a,b;
容易讓人覺得a和b都是指標
5樓:圭時芳哈霜
int*a[5]是指標陣列,int(*a)[5]是陣列指標,前者表示一個陣列,陣列元素都是指向int型變數的指標,後者表示一個指標,該指標指向一個int型有5個元素的陣列,希望對你有所幫助
6樓:匿名使用者
一樣。陣列名就是指向陣列首元素的指標。
比如說吧,
int a[100];
那麼 a 就是 指向 a[0] 的指標。
也就是 a==&a[0]
7樓:德昂當
int a[n] 會分配一塊儲存n個int型資料的區域。
int *a; 則不會
void fun(int a, int n) //函式傳遞陣列引數時,要傳遞的是陣列的地址,int a這不是地址
void fun(int *a, int n) //要這樣寫
8樓:想買好東東
若你只寫int *a,只是定義了一個指標還沒有為陣列分配空間,後面還要new空間
而int a應該已經分配空間了
9樓:匿名使用者
在c語言裡,int a這種寫法是錯誤的。中括號內必須有正整數值,表示陣列中有多少個元素。
int *a,是定義了一個指標變數叫a,這個a指向的記憶體單元中存放的是一個整數。
int a[10],是定義了一個陣列變數a,該變數佔據10個整數的儲存空間,存放了10個整數。
10樓:匿名使用者
int a [ ]是一個放int型資料用的陣列
int *a是一個int型別的指標
c語言中int *a[5]和int(*a)[5]有什麼區別嗎
11樓:飄棉絮絮
int*a[5]是指標陣列,int(*a)[5]是陣列指標,前者表示一個陣列,陣列元素都是指向int型變數的指標,後者表示一個指標,該指標指向一個int型有5個元素的陣列,希望對你有所幫助
12樓:匿名使用者
第一個a是個陣列名,裡面儲存的是int指標。
第二個a是個指標名,它指向一個包含5個資料的int陣列。
c語言中如給一個int型的變數賦值int a=4;和int a;a=4;兩種方式有區別嗎?
13樓:榮起雲睢嬋
你要顯示成01麼。。這不太可能,貌似c語言中沒有用0在前面站位的格式用法。
倒是可以用空格佔位,
printf("%5d",a);
當a的值小於5位的時候,會有空格在前面站位。超過5為照常顯示。
14樓:麻竹竇雁
這兩copy種方法的結果是沒有區別的bai
,但執行過程有差別,但後者比
du前者耗zhi時,所以推薦前者。至於是dao不是放在常數段上,那要看變數a的其他性質,如是全域性變數?區域性變數?再加上是自動型還是靜態型,還是const等等的組合,情況略複雜些了……
求問c語言大神: int a[3][4] 那麼a,*a,&a是什麼型別?有什麼區別?
15樓:it圈新鮮事
a是指陣列的首地址,是個地址值;
*a是陣列第一個位置的元素值,是陣列中的數值;
&a不能用於取陣列的地址,本身a就是地址了,不能再次取地址,否則得到的值是錯誤的。但是可以取變數的地址。
16樓:匿名使用者
二維陣列陣列名為陣列指標.
所以a型別為 int (*)[4]
*a就是a[0], 型別為int, 等效於const int *&a是二維陣列指標. 型別為 int (*)[3][4];
17樓:自我程式設計
陣列bai
元素地址是連續的
dua是表示二維陣列的zhi首地址,其值相dao當於專 &a[0][0] 本身是常量指標 不能改變屬其值。
*a是行的首地址 也就是&a[0] 如果你把(*a)+1 那麼值就是 &a[1]
&a值和a一樣,但意義不同,
a表示陣列首地址,a+1就變成第二個元素地址(int 每個元素地址相隔4)
&a表示整個陣列,&a+1就直接跳過整個陣列的記憶體地址空間(相當於跳過了 4*元素個數的地址)
你可以用sizeof(a) 和sizeof(&a) 檢視記憶體大小就知道了
inta01f輸出什麼,c語言中inta1,b2,cc10ba輸出結果為什麼
chenqin231 已經回答得非常棒了,0.1f這個值會被截斷,取其整數部分,所以,列印a值為0,希望能對你有所幫助,另外,建議你讀一些c語言方面的基礎書籍。a的值被截斷,當你用printf列印a值為0 應為 0 但是0.1f是float型別,前面應該有 int main int f int in...
c語言指標,inta1intp其中pa和
指標本質就是儲存記憶體地址的一個變數。所以指標可以指向某個變數在記憶體中儲存的單元格嘛。變數去訪問單元格最後也是編譯器通過變數名和地址一一對應去查詢的。而指標裡面直接儲存的就是地址,所以直接可以訪問地址所對應的單元格。不知道樓主說的是說明情況。所以幾種可能的都說一下 測試 include stdio...
C語言題目若有說明inta51,
表示二維陣列,第一個表示行數,第二個表示每一行最大容量。所以第一框為 3。c語言的陣列問題,若有定義 int a 2 3 以下選項中對a陣列元素正確引用的是 a.a 2 1 b.a 2 3 選d。一個二維陣列可以被認為是一個帶有 x 行和 y 列的 下面是一個二維陣列,包含 2 行和 3列 因此,陣...