char sztmp[256] = ;
char sztmp2[256] = ;
一開始總認為sztmp的值就全部是0,sztmp2的值全部是1.
結果列印一看,sztmp的值就全部是0,但是sztmp2的第乙個值是1,其他的全部是0
原因: int sztmp[256]=; 第乙個元素是顯式地初始化為var,其餘元素是隱式地初始化為0。
在這裡順便再跟大家一起溫習一下陣列初始化規則:
1.指定陣列大小的情況下:
(1)如果初始化時指定的的元素個數比陣列大小少,剩下的元素都回被初始化為0。
例如 int v5[8]=; 等價於 int v5[8]=;
(2) 如果初始化時指定的的元素個數與陣列大小相等,則陣列元素就按照列表初始化
例如 int v5[4]=;
2.沒有指定數值大小的情況,當初始化採用列表初始化了,那麼陣列的大小由初始化時列表元素個數決定
例如 int v5 =; //數值的大小為4
關於C C 初始化
1 使用函式進行初始化 void memset void s,int ch,size t n 將s中前n個位元組 typedef unsigned int size t 用 ch 替換並返回 s 在使用之前,c中引入string.h,而c 中引入cstring 1 初始化整數陣列 const int...
關於C C 初始化
1 使用函式進行初始化 void memset void s,int ch,size t n 將s中前n個位元組 typedef unsigned int size t 用 ch 替換並返回 s 在使用之前,c中引入string.h,而c 中引入cstring 1 初始化整數陣列 const int...
C C 陣列的定義與初始化
標準庫里memset的原始碼 void memset void s,int c,size t n 申請空間 int array 3 int array new int 10 動態分配 初始化 int array 3 memset array,0,sizeof array 或者 memset arra...