| 情況 | 行為 | 示例 |
| 部分初始化 | 前賦值,後補 0 | int a[10]={1,2,3}; → 1,2,3,0,0,0,0,0,0,0 |
| 全 0 初始化 | 只給首元素 0 | int a[10]={0}; / char c[10]={0}; |
| 不可整體賦值 | 定義後只能逐元素 | int a[10]=1; ❌ 錯誤 |
| 長度自動推導 | 全初始化時可省略 | int a[]={1,2,3,4,5}; ≡ int a[5]={...}; |
完整演示:輸入輸出與部分初始化
#include <stdio.h>
int main() {
int a[6] = {299, 34, 92, 100}; // 後 2 個自動為 0
int b[6], i;
// 鍵盤輸入賦值 b
for (i = 0; i < 6; i++) scanf("%d", &b[i]);
// 輸出 a
for (i = 0; i < 6; i++) printf("%d ", a[i]);
putchar('\n');
// 輸出 b
for (i = 0; i < 6; i++) printf("%d ", b[i]);
putchar('\n');
return 0;
}
運行結果
90 100 33 22 568 10
299 34 92 100 0 0
90 100 33 22 568 10
用數組重寫矩陣輸出
int a[4] = {20, 345, 700, 22};
int b[4] = {56720, 9999, 20098, 2};
int c[4] = {233, 205, 1, 6666};
int d[4] = {34, 0, 23, 23006783};
printf("%-9d %-9d %-9d %-9d\n", a[0], a[1], a[2], a[3]);
printf("%-9d %-9d %-9d %-9d\n", b[0], b[1], b[2], b[3]);
printf("%-9d %-9d %-9d %-9d\n", c[0], c[1], c[2], c[3]);
printf("%-9d %-9d %-9d %-9d\n", d[0], d[1], d[2], d[3]);
數組名本質
int a[4]; → a 是首元素地址(&a[0])
- 數組名是常量指針,不可修改(
a++ ❌)
sizeof(a) = 整個數組大小(16),非指針大小
- 上一篇文章: C語言二維數組完整指南:定義、初始化、內存佈局、矩陣運算實戰
- 下一篇文章: C語言循環總結與實戰:while/for/do-while 對比、break/continue 控制、經典算法示例
Copyright ©
程式碼之家 All Rights Reserved