一、一维数组
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int a[] = {1,2,3,4,5}; 6 int i; 7 8 for(i=0; i<5; i++) 9 printf("%d a",a[i]); 10 11 system("pause"); 12 return 0; 13 }
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int a[5]; 6 7 scanf("%d",&a[0]); 8 printf("a[0] = %d ",a[0]); 9 10 scanf("%d",&a[3]); 11 printf("a[3] = %d ",a[3]); 12 13 int i; 14 for(i=0; i<5; ++i) 15 printf("%d ",a[i]); 16 system("pause"); 17 return 0; 18 } 19 /* 20 有关一维数组的操作 21 初始化 22 完全初始化 23 int a[5] = {1,2,3,4,5}; 24 不完全初始化,未被初始化的元素自动为零 25 int a[5] = {1,2,3}; 26 不初始化,所有元素是垃圾值 27 int a[5]; 28 清零 29 int a[5] = a{0}; 30 错误写法; 31 int a[5]; 32 a[5] = {1,2,3,4,5}; //错误 33 只有在定义数组的同时才可以整体赋值, 34 其他情况下整体赋值都是错误的 35 36 int a[5] = {1,2,3,4,5}; 37 a[5] = 100; //error 因为没有a[5]这个元素 38 39 int a[5] = {1,2,3,4,5}; 40 int b[5]; 41 如果要把a数组中的之全部复制给b数组 42 错误的写法; 43 b = a;//error 44 正确的写法; 45 for(int i=0; i<5; ++i) 46 a[i] = b[i]; 47 */
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int a[8] = {1,2,3,4,5,6,7,8}; 6 int i,j; 7 int t; 8 9 i = 0; 10 j = 7; 11 while(i < j) 12 { 13 t = a[i]; 14 a[i] = a[j]; 15 a[j] = t; 16 17 i++; 18 --j; 19 } 20 21 for (i=0; i<8; ++i) 22 printf("%d ",a[i]); 23 system("pause"); 24 return 0; 25 }
二、二维数组
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int a[3][4] = { 6 {1, 2, 3, 4}, 7 {5, 6, 7, 8}, 8 {9,10,11,12} 9 }; 10 int i,j; 11 12 for(i=0; i<3; ++i) 13 { 14 for(j=0; j<4; ++j) 15 printf("%-5d ",a[i][j]); 16 printf(" "); 17 } 18 system("pause"); 19 return 0; 20 } 21 /* 22 二维数组 23 int a[3][4]; 24 总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是 25 a[0][0] a[0][1] a[0][2] a[0][3] 26 a[1][0] a[1][1] a[1][2] a[1][3] 27 a[2][0] a[2][1] a[2][2] a[2][3] 28 a[i][j] 表示第i+1行第j+1列元素 29 int a[m][n];该二维数组的右下角位置的元素只能是a[m-1][n-1] 30 31 32 */
1 /*是否存在多维数组 2 不存在 3 因为内存是线性一维的 4 n维数组可以的当做每个元素n-1维数组的一维数组 5 比如: 6 int a[3][4]; 7 该数组是含有三个元素的一维数组 8 只不过每个元素都可以再分成4个小元素 9 int a[3][4][5]; 10 该数组是含有3个元素的一维数组 11 只不过每个元素都是4行5列的二维数组 12 */