char* strings_array[100];
strings_array[0] = (char*)"anisha";
strings_array[1] = (char*)"kaul";
strings_array[2] = (char*)"shizuka";
strings_array[3] = (char*)"sharma";
// Access the first character of 3rd string.
std::cout << "\n" << *strings_array[2];
// Access the second character of 3rd string.
std::cout << "\n" << strings_array[2][1];
当我访问第一个字符时,使用asterix访问第3个字符串的剩余字符的方法是什么?
std::cout << "\n" << *strings_array[2];
答案 0 :(得分:2)
要在没有[]
的情况下访问数组中的元素(通过指针),可以递增指针然后取消引用它。
// these are equivalent
strings_array[2][1];
*(strings_array[2] + 1);
答案 1 :(得分:1)
不要抛弃constness!添加const
:
char const * strings_array[100];
^^^^^
任何修改这些字符串的尝试都将导致未定义的行为。
访问时间:
std::cout << strings_array[index_string][index_character];
// equivalent to:
std::cout << *(strings_array[index_string] + index_character);
为第一个字符(index_character
= 0)提供(*):
std::cout << *strings_array[index_string]);
(*) []
的{{3}}高于*
。