读书人

声明指针的有关问题

发布时间: 2012-03-11 18:15:39 作者: rapoo

声明指针的问题
#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;
这样添加注释也方便一些。

读书人网 >C语言

热点推荐