C++ 指针和数组的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 00:14:51
1. int a[3][4] , (*p)[4]=a 求*(a+1)+2的值?
2. int main()
{
char a[6] , p=a;
cout<<p<<endl;

}运行时为什么会出错?

1. int a[3][4] , (*p)[4]=a 求*(a+1)+2的值?

*(a+1)+2相当于 a[1]+2,也就是 &a[1][2]

2. int main()
{
char a[6] , p=a;
cout<<p<<endl;

}

因为p是一个char,不是一个char*;同时p=a两边的类型不一致且不能进行自动类型转换,编译错误。

就是a[1][2]的值啊

p要声明为指针才行啊,而且你的a也没初始化

雨落深山 好细心啊,PFPF,LZ,雨落深山 is right

char a[6] , p=a; 这句话有错,如果是单单一个a,就表示数组a的首地址,而你的p是一个实实在在的变量,不可以把地址赋给它,改成 char a[6] , *p=a; 这样p就变成一个指针,可是存放地址。

1 *(a+1)+2=a[1][2]
2 cout<<p<<endl;输出a[6]首址
改为cout<<*p<<endl;

大家讲的都不错,我是来看热闹的