1樓:緩緩掉落的松針
char *ch[4]=;
這句話的意思是這樣,定義乙個指標陣列ch[4],這個陣列裡面每個元素都是指標,這些指標是r、專g、b這三個字串的頭指標,還有乙個是指向「\0」的作為字串的結束標誌。
簡單點說,這樣的定義是定義乙個二維字元陣列,屬陣列的第一行就是第乙個字串"red",第二行是"green",第三行書"blue",第四行是"\0"。之後就可以用ch[0][1]表示第乙個字串的第2個字母,這裡就是e,ch[1][4]表示第二個字串的第五個字母,這裡就是n。
2樓:any_time依
這是指標陣列,不是陣列指標。
陣列指標:(*p)[10]
指標陣列:*p[10]
性質是不同的
c語言陣列的初始化表示方法
3樓:匿名使用者
在c語言中,陣列的初始化有以下幾種方式:
1、定義的時候同時初始化:
int array[10] = ;
2、定義的時候不指定陣列大小,由初始化的陣列元素來確定大小:
int array = ;
3、先定義變數,然後初始化.注意點:定義變數時必須制定陣列的大小.此時只能對陣列變數成員元素逐一賦值,不能批量賦值.
// int array; //錯誤用法
int array[12];
// array = ; //錯誤用法.
array[0] = 1;
array[1] = 2;
array[2] = 3;
4、只有一種情況,在作為方法的形式引數時,可以不指定陣列的大小.這時傳入方法的是陣列的首位址,所以在方法內部是無法得到陣列長度的,陣列長度必須作為引數傳入函式.
void test()
;int length = sizeof(array)/sizeof(int);
int result = sumofarray(array, length);
printf("%d",result);
}int sumofarray(int array, int length)
return result;
}擴充套件資料
c語言陣列構建:
1、遵循原則
申請的時候從外層往裡層,逐層申請;
釋放的時候從裡層往外層,逐層釋放。
2、構建所需指標
對於構建一維動態陣列,需要一維指標;
對於二維,則需要一維,二維指標;
三維需要一,二,三維指標;
依此類推。
參考資料
4樓:文望刃
不是inta 而是例如int a[10]這種。括號內一定要有個常量數字。
我們可以這樣定義
#define n 5
int a[n]
這表明了陣列名為a;陣列有5個元素;分別是a[0]到a[4];
對於陣列來說;陣列是變數的集合,因此陣列也具有與變數相同的資料型別和儲存型別。陣列的型別就是它所有的變數的型別。在定義陣列時,應在陣列名前對陣列的型別加以確定。
如上面的int a[10];則表明了陣列內元素均為整形。
所有當表示浮點型可以定義為例如float a[10]。 舉例如下:
陣列名是由使用者命名的c語言識別符號,要遵循識別符號命名規則。陣列名表示陣列儲存區域的首位址。陣列的首位址也就是第乙個元素的位址。陣列名是乙個位址常量,不能對它賦值。
陣列名後是由方括號括起來的常量表示式,不能使用其他括號
5樓:台式小情歌
c語言陣列的初始化表示方法有4種,分別是:
1、定義的同時進行初始
化,我們同樣用陣列的初始化引出結構體的初始化,我們知道陣列在定義的同時進行初始化的**如下:
int nums = ;
由此可推出結構體在定義的同時進行初始化的**如下:
struct person p = ;
2、先定義再進行初始化,這種初始化方法其實昨天的內容裡已經寫過了,**如下:
struct person p;
p.name = "lee";
p.age = 23;
p.height = 1.8;
我們知道資料定義好後就不能對其進行一次性初始化了,比如如下**是編譯不通過的。
int nums[3];
num =
3、第三種結構體比較例外,它可以這樣做,只不過需要對其進行一下強制型別轉換,**如下:
struct person p;
p = (struct person)
4、指定將資料賦值給指定的屬性,陣列中我們見過這種寫法,**如下:
int nums[3] = ;
我們可以為不同的索引指定值,並不需要一定要按順序來,所以陣列可以,結構體是否可以呢,當然,**如下:
struct person p = ;
6樓:匿名使用者
陣列的初始化:
int a=; 這種方式初始化,大括號裡寫了幾個元素那麼陣列裡就有幾個元素,相當於int a[3]=int a[3]=; 這樣是將a中的所有元素初始化為0;
int a[4]=; 這樣是將a[0]初始化為1,a[1]初始化為2,其他的初始化為0
7樓:文化廚子
一般對陣列初始化可以用以下方法實現:
(1)在定義陣列時對陣列元素賦以初值。如:
static int a[10]={0,1,2,3,4,5,6,7,8,9};
經過上面的定義和初始化後,a[0]=0,a[1]=1,…,a[9]=9。
(2)初始化時可以只對一部分元素賦初值。例如:
static int a[10]={0,1,2,3,4};
定義的陣列有10個元素,但只對其中前5個元素賦了初值,後5個元素初值為0。
(3)如果想使乙個陣列的元素值全部為0,可以用下面的方法:
static int a[10]={0,0,0,0,0,0,0,0,0,0};
不能用:
static int a[10]={0*10};
如果對static型陣列不賦初值,系統會對定義的所有陣列元素自動賦以0值。
(4)在對全部陣列元素賦初值時,可以不指定陣列長度。
8樓:啦啦啦啦崔小淨
#include
#include
void main()
; //所有初始化為0
int b[5]=; //d[0]=1,d[1]=2,d[2]=3...
int c[10][20]=; //所有初始化為0
int d[3][2]=,,}; //c[0][0]=1,c[0][1]=2,c[1][0]=3,c[1][1]=4...
int e[9][10];
memset(e,0,sizeof(e)); //所有初始化為0}
9樓:愛惹緋聞的寡夫
初始化時中括號裡面可以不寫,會根據後面初始化分配,但是你不是初始化,只是單純的定義就乙個的寫裡面的個數,到時好分配空間給它
c語言在函式定義前加個public是什麼意思?這是什麼
public 關鍵字是型別和型別成員的訪問修飾符。公共訪問是允許的最高訪問級別。對訪問公共成員沒有限制 在乙個 上看到的,看對你有沒有幫助!c函式前的public是什麼意思 public是公有的意思,也就是任何類都可以訪問到這個方法 c語言函式前加上 是什麼意思 有的函式返回乙個數值 0或1 在函式...
C語言如何定義一維陣列並給陣列賦值
例如 int a 10 列印該陣列 for int i 0 i 0 i printf a i 求陣列中的最大值 int max 0 for int i 0 i個陣列的平均值 int sub 0 for int i 0 i上是純手打 有段時間沒接觸c了 可能關於部分方法使用用點錯 只做借鑑 希望可以幫...
在c語言中,定義陣列inta4345678910則a
陣列不能這樣初始化要用逗號,a 0 3 6 這個陣列貌似不對吧 c語言問題 若有說明int a 4 1,2,3,4,5,6,7,8,9 則陣列a第一維 若有說明int a 4 則陣列a第一維是3。定義陣列並賦值時c語言規定下標是這樣的,a n 中的n個元素應該是a 0 a n 1 因此int a 4...