使用typedef进行多指针声明

use*_*125 5 c++ pointers typedef

在C++中,如果我们想要声明多个指针,我们会做这样的事情:int *a, *b, *c;我们必须*在每个指针前放一个星号.如果我写这段代码:typedef int* ptr; ptr a,b,c;?他们都会成为指针,还是只是?

mol*_*ilo 5

不,typedef不仅仅是文本替换的问题(就像宏一样).

typedef int* ptr;
Run Code Online (Sandbox Code Playgroud)

为该类型引入了一个新名称"ptr" int*.

如果你写

ptr a, b, c;
Run Code Online (Sandbox Code Playgroud)

a,b和c的所有类型都相同int*.

注意

const ptr p;
Run Code Online (Sandbox Code Playgroud)

同样是不一样的

const int* p;
Run Code Online (Sandbox Code Playgroud)

既然ptr是指针类型,则const适用于指针; 相当于

int* const p;
Run Code Online (Sandbox Code Playgroud)