c語言初始化0
❶ c語言中怎麼把一維數組初始化為全零啊,不用循環
下面3種方法:
1.int arr[10]={0};
如果只對數組的一部分進行初始化,則編譯器將把其他元素設置為0。因此,當只將第一個元素初始化為0時,編譯器會自動將其他元素設為0 (就像前一句說的那樣)。
2.int arr[31]={};
3.用memset函數在程序開始時初始化數組。比如:
int arr[1024];
memset(arr, 0, 1024); //清零
(1)c語言初始化0擴展閱讀:
memset()函數原型是extern void *memset(void *buffer, int c, int count) buffer:為指針或是數組,c:是賦給buffer的值,count:是buffer的長度。
函數解釋:將s中當前位置後面的n個位元組 (typedef unsigned int size_t )用 ch 替換並返回 s 。
memset:作用是在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法 ,它通常為新申請的內存做初始化工作。
❷ <c語言>如何將數組初始化為0
比較簡單的有兩種 方法。 一種是 在定義的時候直接賦值為0, int a[10]={0};
另一種 是
memset 在頭文件string.h里
int a[10];
memset(a,0,sizeof(a));
❸ 在C語言中,為什麼定義變數的時候總是初始化為0呢該怎麼理解。
這個不是必須的,也可以不初始化,或者初始化為別的數字,主要看需求。
初始化的目的是為了防止後面沒賦值就進行了使用, 變數剛定義的時候,他指向的值是不確定的,所以如果引用了一個沒有賦值的變數,由於其值的不確定性,會引起程序異常。
如果你後面會引用這個變數做加減操作,可以初始化為 0 ,如果後面做乘除操作,建議初始化為1 。
❹ c語言中沒有定義長度的數組可以直接初始化為0嗎比如int a[]={0}
可以,c語言中無長度數組在聲明時,一定要賦初值,系統根據數據的多少自動定義數組的長度。當然也可以賦0值,但也只有一個元素,類似於int a[1],a[0]={0}。
❺ 在C語言中,為什麼定義變數的時候總是初始化為0呢該怎麼理解。
因為變數是可以變動的,定義一個變數不初始化時,變數會是一個隨機數,進行計算了的時候,就會引用那個隨機數進行計算,會有誤差。
❻ c語言中怎麼把一維數組初始化為全零啊,不用循環
具體初始化方法可以參考如下程序段:(方法一)
int a[5] = {0}; // 將整型數組a的每個元素都初始化為0
或者也可以用如下方法進行初始化:(方法二)
int a[5] = {0, 0, 0, 0, 0}; // 將整型數組a的每個元素都初始化為0,初始化效果同上
方法一的初始化方法是將數組元素都初始化為同一個數值;
方法二的初始化方法可以分別對數組的每個元素進行初始化,每個元素的數值可以不同。
❼ 在c語言用一條語句定義一個整型變數,並且初始化為0,則應怎麼編程序
0,大部分編譯器如此,但也有編譯器不是這樣,比如vc。
但是GNU的編譯器一般是0但無論如何,定義而不初始化是不提倡的
vc是一個隨機數,如果是沒用過的內存就是0,如果是使用過再釋放的內存,就是釋放前的值了
❽ 什麼是C語言的初始化
就是在定義一個變數的時候給他賦值。
比如:
……
main()
{
int i = 0;//這里就是C的初始化
i = 3;//這里是正常的語句
printf("%d\n", i);
}
如果你不寫int i = 0; 只是 int i;
如果你一旦漏寫了
i = 3;
那麼你再寫 printf("%d", i);
可能出現亂碼,而你找不出來。
如果你寫了i = 0; 那麼你就知道你i 忘記了賦值,可以找到錯誤。
這樣計算機運行的也不那麼郁悶了。
❾ c語言中三維數組怎樣初始化為0
memset(void*p,int ch,size_t n)函數功能:以指針p指向的內存空間為起始,將其後n個位元組的空間全部賦值為ch.該函數頭文件為<string.h>或<memory.h>
使用該函數初始化數組為0
#include<stdio.h>
#include<string.h>
voidmain()
{
inta[2][3][4];
a[1][2][3]=1;
memset(a,0x00,sizeof(a));
/*測試是否初始化為0*/
printf("a[1][2][3]=%d ",a[1][2][3]);
}
運行結果
❿ C語言 數組初始化為0 編譯器是怎麼實現的
將整型數組a的每個元素都初始化為0或者也可以用如下方法進行初始化