c语言-二维数组

二维数组

定义格式

数据类型[行数][列数] = {值};

整形数组为例:

a[3][4]  = {1,2,3};// a[1] ={ 1 ,2, 3}; a[2] ={0} ;a[3] = {0}

a[][4] = {1,2 ,3,4,5};这种情况下列数已经给出 ,由后面的个数可以确定前面的行数,所以二维必须不能省,一维可以省

当然 a[ ][ ]这种都省的情况下肯定错误, 系统无法判断出是几行几列

使用:

下标从0开始 a[2][3] = {1,2,3,4,5,6};

//整个数据是这样存在的 a[0][0], a[0][1], a[0][2],a[1][0],a[1][1], a[1][2];可以单独赋值

遍历:

使用双重for循环进行遍历

for (int i = 0;i < 2; i++){

for(int j = 0;j < 3; j++)
{

printf("%d", a[i][j]);

}

}

字符串数组即字符的二维数组:

char string[3][20] = {"hello", "how are you","good"};

字符串数组即里面存放的是字符串,字符串即字符数组

string[1], string[2], string[3]即是首地址;故在使用%s输入的时候不需要加&,可以和下面的对照

char str[3] = {'h', 'o',  '\0'};

scanf("%s", str);//str即是数组的首地址

故对上述二维字符数组的赋值可以使用如下方式

for (int i = 0; i< 3; i ++){

scanf("%s", string[i]);

}

对于字符串数组的遍历可以采用两种方式

1.即是双从for循环 (如上整形数组不在赘述) 2.即是使用%s进行输出

for(int i = 0;i < 3; i++){

printf("%s", string[i]);

}

注意:凡是涉及到对字符串的比较和赋值不能使用 > <或者=这些运算符 而是使用 strcmp(字符串1,字符串2); strcpy(字符串1,字符串2)这些字符串的函数,计算长度就用 strlen;在结构体中也要注意要使用strcpy(student.name, "lili");



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章