Ada*_*ton 3 c++ syntax pointers declaration operators
令人难以置信的C++新手,并有一个(可能相当愚蠢)的问题:
我已经看到**在两种上下文中使用的运算符(我理解它是解除引用的解除引用):
char **arglist
char** arglist
语法之间是否存在有意义的差异,还是它们都完成了同样的事情?
它们完全一样.但是在这种情况下,它们不是"取消引用取消引用",它们定义了指向指针的指针char.
我个人更喜欢,char** arglist因为**它就像是类型的一部分,它就像:
type var_name; // where `type` is `char**` and `var_name` is arglist
Run Code Online (Sandbox Code Playgroud)
但是,另一方面,它可能会产生误导,因为以下内容:
char** arglist1, arglist2;
Run Code Online (Sandbox Code Playgroud)
定义char**变量named arglist1,AND一个char名为的变量arglist2.
因此,为了用类型定义2个变量char**,您需要
char **arglist1, **arglist2;
Run Code Online (Sandbox Code Playgroud)
要么
char** arglist1, **arglist2;
Run Code Online (Sandbox Code Playgroud)
或者,来源:
char**arglist1, **arglist2;
Run Code Online (Sandbox Code Playgroud)
这三者都是一样的,这是个人喜好的问题.