二维数组的有关指针

    xiaoxiao2021-03-25  94

    注:a[i][j]为二维数组,以下都是针对二维数组而言!

    表示形式含义备注a二维数组名,指向一维数组a[0],即0行首地址行首地址a[0], *(a+0), *a, &a[0][0]0行0列元素地址元素地址a+1, &a[1]1行首地址行首地址a[1], *(a+1)1行0列元素的地址,即a[1][0]的地址元素地址*(a[1]+2), *(*(a+1)+2), a[1][2]1行2列元素的值,即a[1][2]的值

    注意: 1. a[1]和*(a+1)等价,在二维数组中只是地址的两种不同表现形式; 2. (1) a+1, &a[1] : 表示1行首地址,指向一维数组a[1],指向“行“; (2) a[1],*(a+1),a[1]+0 : 表示1行0列元素的地址,指向列元素,指向“列”; 总结:(1)和(2)地址虽相同,但含义却完全不同; 3. 在指向行的指针前面加一个*,就转换为指向列的指针;如a和a+1是指向行的指针,*a和*(a+1)就成为了指向列的指针,分别指向0行0列的元素和1行0列的元素; 4. 在指向列的指针前面加上&,就成为了指向行的指针;如a[0]是指向0行0列的元素的指针,&a[0]与&*a等价,也就是与a等价,它指向二维数组的0行;

    参考:《C语言程序设计》谭浩强版

    如有错误,欢迎指正!谢谢!

    转载请注明原文地址: https://ju.6miu.com/read-16422.html

    最新回复(0)