这是什么意思:int (*b)[100]以及为了产生这个结果,这段代码的澄清是什么?
#include <iostream>
void foo(int a[100])
{
a [1]= 30 ;
std::cout<<a[1]<< std::endl;
}
void boo(int a[100])
{
std::cout<<a[1]<< std::endl;
}
int main()
{
int (*b)[100] = (int (*) [100]) malloc(100 * sizeof(int));
*b[1] = 20;
std::cout<< *b[1] << "\t" << b[1] << std::endl;
foo(*b);
boo(*b);
std::cout<< *b[1] << "\t" << b[1] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
以上代码输出:
20 0x44ba430
30
30
20 0x44ba430
Run Code Online (Sandbox Code Playgroud)
Lun*_*din 13
int (*b)[100] 是一个数组指针,一个可以指向100 int数组的指针.*b[1] = 20;是一个严重的运算符优先级错误,读取超出数组的范围.它应该是(*b)[1].| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |