
这个二级指针str2和str3怎么得到的 搞不懂这个二级指针的内部逻辑
关注让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
如果答案让您满意,请采纳、关注,非常感谢!
二级指针`str2`和`str3`是通过声明一个指向指针的指针变量来得到的。简单来说,一级指针指向一个内存地址,而二级指针指向一个指针变量的内存地址。
实现代码如下所示:
#include <iostream>
int main() {
// 定义一个字符指针,并初始化为指向字符串"Hello"的首地址
char* str1 = "Hello";
// 定义一个指向字符指针的指针
char** str2 = &str1;
// 定义一个指向指向字符指针的指针的指针
char*** str3 = &str2;
// 输出结果
std::cout << "str1: " << str1 << std::endl;
std::cout << "str2: " << *str2 << std::endl;
std::cout << "str3: " << **str3 << std::endl;
return 0;
}
上述代码中,char* str1 = "Hello"; 定义了一个指向字符的指针str1指向字符串"Hello"的首地址。然后通过 char** str2 = &str1; 定义了一个指针str2指向指针str1的地址,char*** str3 = &str2; 定义了一个指向指针str2的指针str3。通过*str2和**str3即可访问到str1指向的字符串内容。 希望能帮助您理解二级指针的内部逻辑。