声明指针的问题
#include <stdio.h>
void main()
{
int* a,b,c;
c=new int;
}
这样,编译器就会报错,而这样就不会了
#include <stdio.h>
void main()
{
int *a,*b,*c;
c=new int;
}
难道它们两个不同吗,我记得是一样的呀
[解决办法]
int* a,b,c;
只声明了 a为指向int的指针类型,b和c都是int型变量
int *a,*b,*c;
才是三个都是指针
[解决办法]
你那个
int *a,b,c;
只是把a申明为了指针,别的都是整形变量撒。
[解决办法]
楼上说的对,这应该算是C/C++语言的一个小语法陷阱吧。
一个星号只能管一个变量。
[解决办法]
c=new int;
编译器报错是因为
new 返回的是指向一个堆中新分配的int变量的地址
却付给了一个int型变量
[解决办法]
这样就好了
#include <stdio.h>
typedef PINT int*;
void main()
{
PINT a,b,c;
c=new int;
}
[解决办法]
c=new int;
编译器报错是因为
new 返回的是指向一个堆中新分配的int变量的地址
却付给了一个int型变量
[解决办法]
最好写成 :
int *a;
int *b;
int *c;
这样添加注释也方便一些。