一些东西。
当我用 size 的成员数组声明我的结构时
3
,这是否意味着该数组有 4 个元素?0、1、2、3?为什么他们,当我尝试插入字符A
时B
,C
它告诉我initializer-string for array of chars is too long [-fpermissive]
?#include <iostream> using namespace std; struct Student { double no; char grade[3]; }; int main() { struct Student harry = {975, "ABC"}; }
当我打印字符数组的特定索引的地址时,我从以下代码中得到以下结果:
struct Student { double no; char grade[4]; }; int main() { struct Student harry = {975, "ABC"}; for (int i = 0; i < 4; i++) cout << "h.g[" << i << "]" << harry.grade[i] << endl; for (int i = 0; i < 4; i++) cout << "h.g[" << i << "]" << &harry.grade[i] << endl; }
结果:
h.g[0]A
h.g[1]B
h.g[2]C
h.g[3]
&h.g[0]ABC
&h.g[1]BC
&h.g[2]C
&h.g[3]
为什么第一个索引打印ABC
, 然后BC
, 等等而不是像第一个循环那样单独打印每个字符?