a1431909656 发表于 2018-12-16 22:02:33

C语言指针

#include<stdio.h>
void main()
{
    int a={0,1,2,3,4,5,6,7,8,9,10,11};
    printf("%d, ",*a);
}

      和
#include<stdio.h>
void main()
{
    int a={0,1,2};
    printf("%d, ",*a);
}

为什么输出结果不一样!!!

TyCk 发表于 2018-12-16 22:06:40

当然不一样了,这两个a一个是二维数组,一个是一维数组。
二维数组的第一个元素是(x,x),一维数组的第一个元素是x。
这是两种类型的数据呀。

百里狂生 发表于 2018-12-16 22:59:34

本帖最后由 百里狂生 于 2018-12-16 23:01 编辑

二维数组是
                      p(地址)==>p(内存数据).....
p(地址) ==>   p(地址)==>p (内存数据).....
                      p(地址) ==>   p(内存数据)......
所以*p 是第一个元素 ( p0 ) 的值,也就是它所指向的内存的地址。**p才是第一个数据的值。
页: [1]
查看完整版本: C语言指针