memset是什么意思 將一個(gè)數(shù)組所有的值賦值為1,0,-1怎么弄,不用循環(huán)?
將一個(gè)數(shù)組所有的值賦值為1,0,-1怎么弄,不用循環(huán)?C語(yǔ)言或C語(yǔ)言可以做到。在C語(yǔ)言中,沒(méi)有循環(huán)估計(jì)是不容易的。C語(yǔ)言,如果它被賦值為0,不用說(shuō),它是自然的,只要你寫類型X[100]={0};這適用
將一個(gè)數(shù)組所有的值賦值為1,0,-1怎么弄,不用循環(huán)?
C語(yǔ)言或C語(yǔ)言可以做到。在C語(yǔ)言中,沒(méi)有循環(huán)估計(jì)是不容易的。C語(yǔ)言,如果它被賦值為0,不用說(shuō),它是自然的,只要你寫類型X[100]={0};這適用于任何類型。Float a[100]={0}int b[100]={0}C語(yǔ)言,如果要將值賦給-1,所有整數(shù)類型([unsigned]char/int/short/long等)都可以用memset實(shí)現(xiàn);非整數(shù)類型,如Float和double,則不能。C語(yǔ)言,要將值賦給1,只有char和unsigned char可以實(shí)現(xiàn)。有了memset,我想不出其他方法了。對(duì)于C,我們需要依次為{1,0,-1,1,0,-1,1,0,-1…}賦值。這樣,我們就可以不用循環(huán)了。
如何將一個(gè)一維數(shù)組中的所有數(shù)都賦值為-1?不用循環(huán)?
用memset這個(gè)函數(shù)要包含什么頭文件?
memset函數(shù)的格式是:memset(array name,value,sizeof(array name))。記住,要使用memset,需要添加字符串。函數(shù)開(kāi)頭的H頭文件。建議僅使用memset函數(shù)分配0/-1。因?yàn)閙emset是按字節(jié)分配的,所以給每個(gè)字節(jié)分配相同的值,因此int的四個(gè)字節(jié)將附加相同的值。0的二進(jìn)制代碼都是0,-1的二進(jìn)制補(bǔ)碼都是1。因此,當(dāng)值被賦給1時(shí),1的一個(gè)字節(jié)是0000 0001,int值是0000 0001 0000 0001 0000 0001 0000 0001 0000 0001 0000 00001的四個(gè)字節(jié)。輸出值轉(zhuǎn)換為十進(jìn)制,即16843009。因此,如果將其他數(shù)字分配給數(shù)組,請(qǐng)使用fill函數(shù)(但memset更快):#include<stdio。H>#包含<string。H> int main(){int a[5]={1,2,3,4,5}memset(a,0,sizeof(a))(int i=0,i< 5 i){printf(%d,a[i])}printf(“n”)memset(a,1,sizeof(a))(int i=0 i< 5 i){printf(%d,a[i])}printf返回0}輸出0 000 0 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009