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;
}运行时为什么会出错?
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;
大家讲的都不错,我是来看热闹的