當前位置:首頁 » 編程語言 » c語言數組賦值為0
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組賦值為0

發布時間: 2022-04-15 23:30:13

c語言中怎麼把一維數組初始化都為0,

1、首先,需要定義數組,數組常用類型有int型,float浮點型,char字元型等,輸入即可定義。

Ⅱ C語言 數組初始化為0 編譯器是如何實現的

在編譯時,變數分成兩種形式存放,一種叫初始化段,一種叫未初始化段
如果你定義數組沒有給出賦值語句中的初始值,該數組將保存在未初始化段;否則放入初始化段
編譯器將記錄初始化段中的數組起始地址、數據類型、元素個數,初始化數據在常量區的起始地址,數據個數
在程序運行時,系統先申請各段內存,然後針對初始化段進行初始化工作,方法是從常量段中取出初始化數據給你有初始值的變數賦值,假設你程序開設10個單元的數組,如果沒有優化選項,常量段中將保存10個0用來初始化這個數組,如果有優化選項,可以合並相同常量,則僅保存一個0,並用這個0來初始化所有10個數組元素。

Ⅲ <c語言>如何將數組初始化為0

比較簡單的有兩種 方法。 一種是 在定義的時候直接賦值為0, int a[10]={0};
另一種 是
memset 在頭文件string.h里
int a[10];
memset(a,0,sizeof(a));

Ⅳ C語言如何讓數組里所有元素都為0,不是清空數組元素

只需要初始化的時候,將初始化值設置為0即可。

int a[10] = {0};

測試程序如下:

#include<stdio.h>
intmain()
{
inta[10]={0};
for(intinx=0;inx!=10;++inx)printf("%d ",a[inx]);
printf(" ");
return0;
}

運行結果:

Ⅳ 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語言數組賦值為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語言數組怎麼清零

c語言不能對這個數組賦值,只能通過遍歷數組達到給數組中每個元素賦值的目的。初始化的時候可以用inta[4]={0};這樣給整個數組元素賦值為0,若想給已初始化的數組清零,也只能遍歷數組。

在C語言中,所謂的「清空」,意思是「無視裡面的數據」,而不是「讓裡面沒有數據」。有時候可能需要把一個數組清零,意思是全部數據都用0填充,可以用庫函數來實現。假設數組名為a,無論什麼類型也無論幾維都一樣,可以寫成memset(a,0,sizeof(a));

(6)c語言數組賦值為0擴展閱讀:

在C語言中, 數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字元數組、指針數組、結構數組等各種類別。

關於可變長數組(VLA)的問題:原來的C89標准中是不允許可變長數組出現的,但是在C99標准中,加入了對VLA的支持,但是支持的編譯器不多,而且由於棧溢出的安全問題,沒有太多的人敢用這個可變長數組,所以在C11標准中又把它規定為可選實現的功能了。

Ⅶ 在C語言中,若想要把把數組中全部元素均賦為零,可對數組不賦初值,對嗎

不對。
c語言聲明數組時,只分配相應的內存空間和地址,並不賦初值,各元素的值是亂七八糟的數字。所以:
int names[5];

int names[5]={0};
是完全不等價的。

Ⅷ C語言里有沒有把數組元素全部賦值為0的函

memset() 函數常用於內存空間初始化。如:
char str[100];

memset(str, 0, sizeof(str));

Ⅸ c語言中怎麼給一個行和列都是100的二維數組都賦0值

有兩種方法可以做到。
一、循環賦值。
對每一項分別賦值為0。對於二維數組一般用雙重循環,實際上用單重循環也可以,效率上並無區別。
參考代碼:
TYPE a[100][100];
int i,j;
for(i = 0; i < 100; i ++)
for(j = 0; j < 100; j ++)//雙重循環遍歷。
a[i][j] = 0; //每個賦值為0。
二、整體置零。
在C庫函數中,有memset這一個函數,形式為
/*
Set
N
bytes
of
S
to
C.
*/
void
*memset
(void
*s,
int
c,
size_t
n);
功能為,在地址s指向的內存單元開始,將c個位元組的空間,每個都賦值為c。
這個函數是按位元組賦值的,所以對於賦值0值,可以直接將整個內存空間清零。
參考代碼:
TYPE a[100][100];
memset(a, 0, sizeof(a));//整體清0.
第一種方法更具通用性,後一種方法不是永遠適合,但在可以用memset的情況下,後一種方法更高效。

Ⅹ c語言中定義一維數組如果想全部都賦值為0可以寫成a[10]={}嗎

全局變數 默認初始化為0 局部變數可能要看具體編譯器的情況而定

最好寫成 a[10]={0}