整數型int 為什麼不可以用 memset 函式?

2021-07-22 02:45:18 字數 845 閱讀 7121

對於整數型陣列,若要是初始化為 非0 的值時應該使用for迴圈

而對於字元型 或 0  應該使用memset 函式

如下demo是可以的,能把陣列中的元素值都設定成字元1

#include

#include

using namespace std;

int main()

而,如下程式想吧陣列中的元素值設定成1,卻是不可行的

#include

#include

using namespace std;

int main()

問題是:

1,第乙個程式為什麼可以,而第二個不行,

2,不想要用for,或是while迴圈來初始化inta[5];能做到嗎?(有沒有乙個像memset()這樣的函式初始化)

答:

1.因為第乙個程式的陣列a是字元型的,字元型佔據記憶體大小是1byte,而memset函式也是以位元組為單位進行賦值的,所以你輸出沒有問題。而第二個程式a是整型的,使用memset還是按位元組賦值,這樣賦值完以後,每個陣列元素的值實際上是0x01010101即十進位制的16843009。你看看你輸出結果是否這樣?

2.如果用memset(a,1,20);

就是對a指向的記憶體的20個位元組進行賦值,每個都用ascii為1的字元去填充,轉為二進位制後,1就是00000001,佔乙個位元組。乙個int元素是4位元組,合一起就是1000000010000000100000001,就等於16843009,就完成了對乙個int元素的賦值了。

整數型int 為什麼不可以用 memset 函式?

個人認為 對於整數型陣列,若要是初始化為 非0 的值時應該使用for迴圈 而對於字元型 或 0 應該使用memset 函式 如下demo是可以的,能把陣列中的元素值都設定成字元1,include include using namespace std int main 而,如下程式想吧陣列中的元素值...

程式設計 為什麼不可以簡單??

今天在群裡聽到這樣的話,asp.net太簡單了,微軟過分的封裝,難道程式設計要像word,excel那樣簡單嗎 具體的可能不是這個樣子,反正意思差不多。我想了想,首先有乙個疑問,什麼樣的人需要程式設計,程式設計中最重要的是什麼?誰會程式設計,我覺得每個人都可以,但這個社會從事程式設計的人還是少數,程...

字元型(char)如何轉成整數型(int)

我是乙個新手,這也是我第一次寫部落格,相信很多人應該和我一樣,在剛開始接觸c語言的時候,不知道應該怎麼辦,但是學習的方法就是不停的看書,然後每天都寫一下 不一定要寫得多,哪怕寫乙個程式也可以,最起碼要保持對 的敏感度。當我們在acm上寫題的時候,經常會碰到輸入一串數字,然後對這串數字進行相應的操作,...