黑马程序员技术交流社区

标题: a+1 *a+1 *(a+1) **(a+1) [打印本页]

作者: carshoel    时间: 2015-7-4 19:58
标题: a+1 *a+1 *(a+1) **(a+1)
int a[2][3]={{1,2,3,},{4,5,6}};

a是这个二维数组首地址
a+1移动了一个一维数组的长度
*a+1移动了一个一维数组的一个元素的长度
*(a+1)相当于a+1,也移动了一个一维数组的长度
**(a+1)是*(a+1)存的值

int main()
{
        int a[2][3]={{1,2,3},{4,5,6}};
        printf("a=%d\n",a);
        printf("a+1=%d\n",a+1);
        printf("*a+1=%d\n",*a+1);
        printf("*(a+1)=%d\n",*(a+1));
        printf("**(a+1)=%d\n",**(a+1));
        return 0;
}



作者: mazhichao    时间: 2015-7-4 22:42
谢谢分享,我也正为指针的事发愁啊~
作者: pp584995727    时间: 2015-7-4 23:19
学习了,不错
作者: 弹剑    时间: 2015-7-4 23:31
二维数组这边还是用行和列解释比较清楚
作者: cuin    时间: 2015-7-5 17:22
多谢分享总结!!!
作者: 4B青年    时间: 2015-7-5 18:13
指针还是有点绕的,用好了就是神器啊
作者: carshoel    时间: 2015-7-5 20:36
弹剑 发表于 2015-7-4 23:31
二维数组这边还是用行和列解释比较清楚

恩,行列比较形象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2