C++ c语言中的指针、双指针和三指针

C++ c语言中的指针、双指针和三指针,c++,pointers,C++,Pointers,可能重复: #包括 使用名称空间std; char*c[]={“ENTNG”、“NST”、“AMAZI”、“FIRBE”}; 字符**cp[]={c+3,c+2,c+1,c}; 字符***cpp=cp; int main(){ cout单指针是指可以指向特定数据类型的内存位置的数据类型。在这种情况下,它是char,因此我们假设它是char指针,并且只能指向char变量,也就是说,它只能保存字符变量的地址。 双指针可以保存单指针的地址,三指针可以保存双指针的地址 在您的代码中,第一个指针“c”是

可能重复:

#包括
使用名称空间std;
char*c[]={“ENTNG”、“NST”、“AMAZI”、“FIRBE”};
字符**cp[]={c+3,c+2,c+1,c};
字符***cpp=cp;
int main(){

cout单指针是指可以指向特定数据类型的内存位置的数据类型。在这种情况下,它是char,因此我们假设它是char指针,并且只能指向char变量,也就是说,它只能保存字符变量的地址。 双指针可以保存单指针的地址,三指针可以保存双指针的地址

在您的代码中,第一个指针“c”是一个双指针,它本身包含cstring。cstring是单字符指针。然后“cp”和“cpp”都是三个指针

至于其他代码,它是很混乱的,看起来像是噩梦。你最好阅读一些关于指针和基本C++编程的资源。我将在斯坦福大学的埃里克·罗伯茨爵士中重新评论C++中的编程抽象。


也请参阅

试着仔细阅读一本好的C程序书。(注意C++中的原始指针通常是坏的样式)读一本C++编程书籍。不要期望我们解释你的指针。因为我们不知道你对编程知道什么,所以很难教。BTW,代码很可怕。如果你不习惯指针,读一本书,或者找到其他例子;你会(希望)。永远不要在混乱的C竞赛之外找到你发布的代码类型-不要从中学习。没有人编写像
*-*++cpp+3
这样的代码。永远都不会。是的,它是有效的,但在现实世界中它永远不会通过代码评审。我想问的主要问题是,main()中的第三行和第四行是怎么写的工作。我知道这些概念,但我发现这部分特别困难。好的,thanx,我问这个问题是因为微软在测试中问了这个问题。
 #include<iostream>
 using namespace std;
 char *c[] = {"ENTNG","NST","AMAZI","FIRBE"};
 char **cp[] = {c+3,c+2,c+1,c};
 char ***cpp = cp;
 int main(){
 cout<<(**++cpp);
 cout<<(*--*++cpp+3);
 cout<<(*cpp[-2]+3);
 cout<<(cpp[-1][-1]+1);
 return 0;
 }