A *p=new A;与 A *p=new A();的区别

其中A为一个类

上面两个有区别吗?

p=&a

p=&a
都是对指针p赋值;
这句(*q)++实际上是给a++了。
至于答案的第二行输出3
2;,*p,(*q)++),
然后(*q)++(此时a变为3),而且(*q)++的++在后面,也就是a的值是3了,第二个是写在其他赋值的时候;所以“%d
%d\n”先给右边的%d赋值是*q;%d
%d\,那是因为printf(",printf填值是从右向左的;n",不过第一个是写在初始化的时候
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-11
没区别,
分配一个类内存后,
都用 A 默认构造函数 A() 初始化。。本回答被提问者采纳
第2个回答  2009-12-11
其实没有区别,都会调用类A的缺省构造函数或者没有参数的构造函数。不明白M我。

c++中A*p;怎么理解这个p?
1 A只是一个类的声明,不能直接使用A,因为内存中不存在A这个对象(即实例)。2 内存中必须对A创建一个实例,也叫做A的一个对象。3 p是声明为指向A对象的地址,如果内存中没有A的实例,p不能操作(虽然也可以看到A类定义的方法)。4 对A类new操作,即在内存中申请了一个空间,保存了A的实例,...

malloc和new的区别,new和operator new的区别,分配器介绍
从使用方法上,malloc返回的是void*指针,所以你必须进行强制转换才能把分配出来的空间的首地址指针赋给新指针,例如char *p = (char *)malloc( sizeof(char) * 5); 而new就不需要了,直接A *p = new A(type); 其中的type是构造函数的输入参数,可以随意选择一个构造函数,若无可以省略。同时,...

C++ new 声明数组
A * p=new A[10]; 这只是说创建了一个10元素的数组,并没有变成对象分配内存。 要初始化还要用for循环一个一个初始化。这样。for(int i=0;i<n;i++){p[i]=new A(m);} .因为这里的p[i]只相当于一个没有被初始化的变量名一样。第一个new,new 出了一个数组。第二个new,才给...

A *p=new B是什么意思
一般的是A *p=new A或者B *p=new B:新建一个类的实例。如果如你写的这个代码,那么类A必须有重载操作符=的函数。

在c++中 A *p,a;是什么意思
可以把这句话拆开看:A *p;A a;也就是定义一个A类型的指针变量p;和定义一个A类型的变量a;如果A是基本类型,此处表示定义;否则A *p只表示声明一个A类型的指针变量。声明&定义变量后,可做如下操作。p = new A;a = &p;一般而言,最好是一行定义一个变量。

A *p= new A[100]是什么意思?
A可能是个结构或类,申请了一个数组,p[0]...p[99]

int *p; p=new int a[n]; 除此外有什么办法动态分配内存
{ A a;\/\/定义了一个a对象 A *p=new A;\/\/在堆上定义了一个对象,它的指针保存在p里,注意,堆上定义的对象没有名字,必须用指针保存 return 0;}\/\/a到这里的时候,它占用的内存就会被回收 而p,除非调用delete p; 否则内存永远不会被回收,指针p丢弃后,那块内存没被释放,无法被再次使用,造成...

*p=&a和*p=a的区别是什么?
1、一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2、*p=a的意思:将a的值赋给p指针指向的地址的值。3、p=&a的意思是:将a的地址赋给指针p。4、区别:*p是一个值;p是一个地址;两者完全不相同。5、*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;...

*p=&a,*p=a和p=&a各是什么意思,有什么区别?
1.一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2.*p=a的意思:将a的值赋给p指针指向的地址的值;3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是...

int* p =&a *p=a有什么区别?
第一个给p赋a的地址,第二个是给p指向的变量赋a的值

相似回答