❶ c語言里有沒有把數組元素全部賦值為0的函數
方法一、在定義時賦初值
1、靜態數組
int[3][3]={0};
2、動態數組
int**a=newint*[n];
for(inti=0;i<n;i++)
a[i]=newint[m](0);
方法二、在定義完後賦值
for(inti=0;i<n;i++)
{
for(intj=0;j<m;j++)
a[i][j]=0;
}
方法三、用一個循環吧數組所有元素設置為0:
intarr[100];
inti=0;
for(i=0;i<100;i++)
arr[i]=0;//ThiswillmakeallZERO
方法四、
1、全局變數和靜態變數初始化時會自動被設置為0。如果們聲明全局變數,那麼在運行前會變成全0。
intarr[1024];//Thisisglobal
intmain(void)
{
//statements
}
2、對於局部數組簡寫的初始化語法。如果一個數組被部分初始化,沒有被初始化的元素會被自動設置為相應類型的0。這是編譯器自動完成的。可以這樣寫:
intmain(void)
{
intarr[1024]={0};//ThiswillmakeallZERO
//statements
}
3、可以用memset函數在程序開始時初始化數組。這條命令這在已經修改了數組之後又想將它重置為全0特別有用。
intarr[1024];
arr[5]=67;
memset(ZEROARRAY,0,1024);//ThiswillreinitializealltoZERO
❷ C語言 ,賦值後奇怪變0
數組a[3]里的元素只有a[0]、a[1]和a[2],a[3]里的3代表的是數組的元素個數。
❸ 在C語言中,當變數a賦值給變數b後,變數a的值就變為零了嗎
暈!
要麼t=b;b=a;a=t;要麼t=a;a=b;b=t;!!
t=b;a=t;b=a;當然不可以了,這樣把a的值丟了,最終a,b的值都是原來b的值。
❹ C語言初學者,abc賦值完計算結果都為0
汗~
printf命令中「」符號內是不能運算的,想輸出a+b+c的值要寫
printf("a+b+c=%d\n", a+b+c);才行
❺ c語言中怎麼把一維數組初始化為全零啊,不用循環
下面3種方法:
1.int arr[10]={0};
如果只對數組的一部分進行初始化,則編譯器將把其他元素設置為0。因此,當只將第一個元素初始化為0時,編譯器會自動將其他元素設為0 (就像前一句說的那樣)。
2.int arr[31]={};
3.用memset函數在程序開始時初始化數組。比如:
int arr[1024];
memset(arr, 0, 1024); //清零
(5)c語言a賦值變為零擴展閱讀:
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語言中變數a=0與a==0的區別
a=0是說:給變數a賦值0
比方說,原來定義a=1或沒有定義,現在執行賦值語句a=0,則變數a中的值就變為0,此時a等於0
a==0就相當於數學式中的「a等於0」
賦值是個動作,而等於則是判斷比較
❼ C語言指針 這樣為什麼a 的值也變成0了
*(int**)p=NULL; 把地址為p的變數置成了0,a的地址放在p里,所以a值為0.
❽ C語言 為什麼賦值之後的a只是零值
b是長整型,a是整型,把b賦值給a,會損失精度,失去後面的數據。