好的,所以根据我对阅读指针数组的理解:
数组被认为等同于常量指针,因为它指向它的每个索引元素。指向数组的指针也等同于第一个索引的地址。
好吧 - 因为这是有效的:
int test[] = {1, 2, 3}
int * point = test;
cout << test + 2; //gives the address of the 3rd element test[2]
我想知道,这怎么会有不同的行为?
char arr[] = "testing pointer arrays";
char * pointer = arr;
cout << pointer + 3 << endl; //would output the actual string at pos arr[3]
同样:
char * test = "zomg";
cout << test + 2; //outputs mg
在这种情况下,char 指针真的很特别吗?这给我带来了另一个关于流式传输函数的问题,您可以通过增加点和指定大小来指定可以写入/读取的字节数(例如 in ofstream::write(char pointer, size);)此外,将结构类型转换为字符指针可以将其转换为字节数组吗?
任何澄清将不胜感激,谢谢。