一維陣列的初始化問題(函式體內與函式體外)

2021-08-10 23:50:18 字數 566 閱讀 4910

陣列元素初始化時,若沒有顯式提供幸元素的值,則元素會被像普通變數一樣初始化:

函式體外定義的內建型別陣列(即內建型別的全域性陣列),元素初始化為0;

函式體內定義的內建型別陣列,元素無初始化(注意,若只初始化部分元素,其後的元素此時也會被初始化為0);

如果不是內建型別,則不管其在哪定義,自動呼叫其預設建構函式為其初始化,若該型別無缺省建構函式則會報錯。

下面針對1和2的不同給出具體例子:

1.對條件1給出的例子,此時輸出的a[0]為0,初始化為了0

#include 

using

namespace

std;

int a[6];//陣列a定義在主函式外

int main()

2.對條件2給出的例子,此時輸出的a[0]為乙個未初始化的值

#include 

using

namespace

std;

int main()

一維陣列初始化

include includevoid main printf x n num printf x n num printf x n num 0 int num 10 直接初始化,只要有乙個元素初始化,則其他的元素會自動初始化為0 其他資料型別也如此 printf x n num int num 10...

memset函式與二維陣列初始化的問題

今天在編寫levenshtein distance距離函式時用到二維陣列,用memset對其初始化時發生了問題,直接 int m null int i 0,j 0 m int malloc row sizeof int for i 0 i row i memset m,0,row col 4 for...

C 一維陣列初始化

源自博文 c 陣列的智慧型初始化 陣列的初始化在一般程式設計中經常會遇到 1.可以用迴圈對每個元素進行初始化 2.利用c 的陣列智慧型初始化 2.1 只要用到 預設初始化為0 2.2 否則不確定,隨機。這點類似於c 中的區域性變數和靜態變數 3.c standard library提供了乙個初始化的...