07-C语言二维数组

2018-09-07  本文已影响0人  低头看云

二维数组

for(int i = 0; i < 2; i++){  // 外循环取出一维数组
    for(int j = 0; j < 3; j++){ // 内循环取出一维数组的每个元素
        printf("a[%i][%i] = %i\n", i, j, a[i][j]);
    }
}
- 注意: 必须强调:a[0],a[1]不能当做下标变量使用,他们是数组名,不是一个单纯的下表量    

二维数组的初始化

// 定义的同时初始化
int nums[2][3] = {{1,3,5},{2,4,6}};

int nums[2][3];
nums[0][0] = 111;
nums[0][1] = 111;
nums[0][2] = 111;
nums[1][0] = 111;
nums[1][1] = 111;
nums[1][2] = 111;

int a[][3] = {{1,2,3},{4,5,6}};
int nums[2][] = {{1,3,5}{2,4,6}}; // 会报错

二维数组的存储

#include <stdio.h>
int main()
{
    char cs[2][3] = {
        {'a', 'b', 'c'},
        {'d', 'e', 'f'}
    };
    // cs == &cs == &cs[0] == &cs[0][0]
    printf("cs = %p\n", cs);                // 0060FEAA
    printf("&cs = %p\n", &cs);              // 0060FEAA
    printf("&cs[0] = %p\n", &cs[0]);        // 0060FEAA
    printf("&cs[0][0] = %p\n", &cs[0][0]);  // 0060FEAA
    return 0;
}


二维数组与函数

#include <stdio.h>

void change(char ch){
    ch = 'T';
}
void change2(char ch[]){
    ch[0] = 'T';
}
void change3(char ch[][3]){
    ch[0][0] = 'T';
}
int main()
{
    char names[2][3] = {{'c','w','w'},{'p','j','j'}};
    printf("char[0][0] = %c\n", names[0][0]); //    c   c   c
    //change(names[0][0]);  // 基本类型,不会影响到外面的实参;
    //change2(names[0]);
    change3(names);
    printf("char[0][0] = %c\n", names[0][0]); //    c   T   T
    return 0;
}

上一篇 下一篇

猜你喜欢

热点阅读