小编Mar*_*ton的帖子

将int [] []赋值给int**

据我所知,在某些情况下,数组被转换为指向其第一个元素的指针:

int a[5];
int * p;

p = a;
Run Code Online (Sandbox Code Playgroud)

按照这种方法并考虑到我可以为指针分配一个数组,为什么我不能将二维数组分配给指针指针?

int a[5][5];
int ** q;

q = a;
Run Code Online (Sandbox Code Playgroud)

但是,我可以为指针指针指定一个指针数组:

int * p[5];
int ** q;

q = p;
Run Code Online (Sandbox Code Playgroud)

如果数组转换为指向其第一个元素的指针,则在第二个示例中发生q = a时,a应该是指向[0]的指针,而[0]应该是指向[0] [0]的指针, 对?

此外,如果我这样做,我不会收到错误:

cout << **a;
Run Code Online (Sandbox Code Playgroud)

在此先感谢,我希望你能帮助我理解.

c c++ arrays pointers

4
推荐指数
1
解决办法
1406
查看次数

C++字符串输入

我的书说如果我想读一个最大长度为40个字符的字符串,我必须声明一个长度为41的变量,但它没有说明原因.

char name[41];
cin >> name;
cout << name << endl;
Run Code Online (Sandbox Code Playgroud)

我知道这是一个新手问题,我确实是一个C++新手.

我希望你能帮助我.谢谢.

编辑:

感谢您的回答,我没想到在如此短的时间内获得如此多的好消息.

  1. 谁负责在char数组的末尾插入NULL终止符?

  2. 按Enter后"\n"会发生什么?

再次感谢.

c++

1
推荐指数
1
解决办法
1893
查看次数

标签 统计

c++ ×2

arrays ×1

c ×1

pointers ×1