1樓:在晴天的雨傘
首先要清楚什麼是初始化:
在宣告變數的同時賦值就是初始化。
而在其後的賦值語句就不是初始化。
一般來說,如果你不給變數一個確定的值,就直接引用它,則系統不能保證執行的唯一性,而這是我們程式所不允許的。所以我們一般用初始化的方法來確定其值。
如char str[100]
引用memset(str,sizeof(str),0);
即將所有的陣列元素初始化為0;
但並不總是這樣。如下:
int i;
for (i=0;i<10;i++)...
i就不是通過初始化,而是用賦值的方法確定值的。
擴充套件到陣列中,也是如此,如果你在引用陣列元素前不把它的值確定下來,程式執行就可能不確定。
因為確定陣列元素值的方法有兩個:初始化和賦值,所以初不初始化要視情況而定。
2樓:楚霄06自力更生
首先. 試一下的方法是錯誤的.
(1)全域性變數
未初始化的全域性變數是 0
(2)區域性變數
<1>debug版
是填充字元, 比如可能是 0xcdcdcdcd 等<2>release版
是亂碼, 也就是這個地方原來(在這之前被其他變數使用的時候)遺留下來的資料.
c語言陣列初始化可以是實型嗎
3樓:千鋒教育
1、陣列,顧名思義,是相同型別的陣列成的一個組,也就是說是把相同型別的一系列資料統一編制到某一個組別中。這樣就可以通過陣列名+索引號簡單快捷的操作大量資料。這就和全校學生一樣,把學生分成多個班級,每個學生都是班級中的一員,如果要找張三,如果沒有班級的話,就要在全校學生中一個一個尋找,一直到找到為止;但是如果引入了班級,就可以在某某班級中尋找張三,這樣就更加方便快速了。
2、一般有四種陣列定義方式,以一維陣列為例:
//定義指定維數的陣列
int arr[10];
//定義不指定維數的陣列,陣列維數有初化列表元素個數決定。
int arr = ;
//定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr[10] = ;
//動態分配一個陣列。下面分配了一個有10個元素的陣列。
int *arr =(int *) malloc(10 * sizeof(int));
4樓:沫染少年無情海
陣列初始化可以知己定義 如 string con= new string 初始化是自己定義的 不通的資料型別陣列 初始化的資料為不同型別
如何初始化一個byte陣列,然後賦值
5樓:橋亙
初始化一個byte陣列,長度為2:
byte b = new byte[2];
然後新增資料:
b[0] = 12;
b[1] = 23;
c++中結構體陣列中如何初始化部分資料?
6樓:育知同創教育
snack[0].band = "chocolate king";//這行在snack[0]底下顯示紅色波浪線,提示表示式必須為可修改的左值 ——字元陣列表示的字串是不能賦值的,可用strcpy函式:strcpy(snack[0].
band, "chocolate king"); 如果band的型別為string就可以賦值了。
c#物件初始化問題(可否像c語言的結構一樣
7樓:騰訊電腦管家
include
#include
int jc(int m)
int c(int m,int n)
int main(void)
有關c語言初始化陣列的問題
8樓:育知同創教育
一般對數
復組初始化可以用制以下方法實現:
(1)在定
bai義陣列時對陣列元素賦以初du值。如:
static int a[10]={0,
zhi1,2,3,4,5,6,7,8,9}dao;
經過上面的定義和初始化後,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)在對全部陣列元素賦初值時,可以不指定陣列長度。
j**a陣列類初始化如何賦值
9樓:匿名使用者
////111111111111111111111111111111111111111
comparable a=new comparable;
表中有幾個值,陣列就有幾個元素。如果非要4個,可以再補個null。適用於長度較短的陣列。
//22222222222222222222222222222222int initvalue=new int;
comparable a=new comparable[100];
for(int i=initvalue.length-1;i>=0;i++)
長的這樣做。
10樓:於浩
comparable s=;
估計也只能這樣子了.這麼寫不能直接指定陣列的長度.
資料特別多的話,最好是把你的資料用個int陣列包裝起來,再寫個迴圈.
11樓:匿名使用者
comparable a=new comparable[4];
for(int i = 0; i < a.length; i ++)
12樓:匿名使用者
如果你的陣列賦值都很有規律可以用迴圈來做,如果不是的話那就只能這樣了!!
但是你也可以這樣
int【】 a=;
c語言用scanf初始化陣列,scanf(『』%d『』),明明中間什麼都沒有,為什麼輸入資料要加空
13樓:夜獨行孤單
#include
int main()
return 0;}
14樓:萢萢
因為陣列有多個數,不用空格分割開,系統就不認識是一個數還是多個數了。
關於c語言中陣列定義問題
15樓:育知同創教育
主函式內定義的陣列在堆疊段中分配記憶體。
全域性變數陣列在資料段中分配記憶體。
一般資料段比堆疊段大很多,
所以堆疊段分配不了的記憶體,資料段可以分配
(1)在堆疊段中分配記憶體,由於太大無法分配,所以錯誤。
(2)在資料段中分配記憶體,資料段可以分配,無錯誤。
(3)陣列比(1)需要的記憶體少,在堆疊段大小範圍內,可以分配,無錯誤(4)同(3)
c語言指標初始化,c語言指標初始化
int array 4 5 6 一級指標,指標向一個陣列,該陣列為int 4 5 6 int a 4 5 6 pa 二級指標,指向上一行的一級指標 對於動態分配的結構,不可能用陣列這種形式來儲存的。因為陣列的下標必須在編譯時刻明確為常量。樓主用的c 可以考慮用stl的vector。另外,我覺得本身用...
c語言指標初始化的問題
如果你是需要賦字串的,不需要給它分配空間,但是如果你要給指標結構體賦某個值,那是需要給指標指定記憶體空間的,所以你上面的程式只要這樣就好了 main s的話,就是後面的str1之類的東西是要一個地址 main str2 bushishabi 去掉 printf s n s n str1,str2 要...
在C語言中,為什麼定義變數的時候總是初始化為0呢?該怎麼理解
因為變數是可以變動的,定義一個變數不初始化時,變數會是一個隨機數,進行計算了的時候,就會引用那個隨機數進行計算,會有誤差。如果全域性變數在定義時不初始化則初始值是0,如果區域性變數在定義時不初始化則初始值是不確定的。誰說總是初始化0的,全域性變數和靜態變數會,區域性變數不一定,可恨的不同的編譯所採用...