这是一小段代码:
#include <iostream>
using namespace std;
#define myptr int *
int main(){
myptr p,q;
int c;
p = &c;
q = &c;
c = 2;
cout<<c<<endl;
cout<<*p<<endl;
cout<<*q<<endl;
return 0;
}
p
的类型为 int*
而 q
的类型为 int
。为什么会这样?
最佳答案
宏替换后,myptr p,q;
变为
int *p,q;
认为q
的类型是int*
是一个常见的错误,但实际上它是int
。
你需要的是typedef
:
typedef int* myptr;
关于c++ - #define myptr int * 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18886410/