陣列的初始化為 0 的學習

2021-06-23 01:40:39 字數 1158 閱讀 1729

int a[100] = ;

013a356e mov dword ptr [a],5

013a3578 mov dword ptr [ebp-190h],2

013a3582 push 188h // 188h 即是十進位制的 392,也就是說先把陣列前兩個元素賦值, 剩下的再呼叫memset置 0

013a3587 push 0

013a3589 lea eax,[ebp-18ch]

013a358f push eax

013a3590 call @ilt+115(_memset) (13a1078h)

013a3595 add esp,0ch

int b[100] = ;

013a3598 mov dword ptr [b],0

013a35a2 push 18ch // 18ch 即是十進位制的 396,也就是說先把陣列第乙個元素賦值為0, 剩下的再呼叫memset置 0

013a35a7 push 0

013a35a9 lea eax,[ebp-328h]

013a35af push eax

013a35b0 call @ilt+115(_memset) (13a1078h)

013a35b5 add esp,0ch

int c[100];

memset(b, 0, 100 * sizeof(int)); // zeromemory 只是乙個巨集,實為呼叫metset

013a35b8 push 190h

013a35bd push 0

013a35bf lea eax,[b]

013a35c5 push eax

013a35c6 call @ilt+115(_memset) (13a1078h)

013a35cb add esp,0ch



將整型陣列元素初始化為0的方法

第一種方法 對於區域性陣列我們還有簡寫的初始化語法。如果乙個陣列被部分初始化,沒有被初始化的元素會被自動設定為相應型別的0。這是編譯器自動完成的。源 如下 include using namespace std int main for int i 0 i 10 i cout endl system...

C 二維陣列的引數傳遞與全部初始化為0

a為二維陣列 引數傳遞 no.形參 實參形參型別 1a size a陣列 2 a size a指向陣列的指標 3 a b指標的指標 b size b 0 a 0 b 1 a 1 b 2 a 2 形參為a size 呼叫的時候用a。陣列 形參為 a size 實參為a。指向陣列的指標 形參為 a,呼叫...

陣列,結構體初始化 0

一直以為 int a 256 是把a的所有元素初始化為0,int a 256 是把a所有的元素初始化為1.除錯的時檢視記憶體發現不是那麼一回事,翻了一下 the c programming language 總算有定論。pdf的竟然不然複製,就把它這章翻譯了,如下 5.2.1 陣列初始化 陣列可以用...