jjdf.net
当前位置:首页 >> C++ 新手赋值问题 >>

C++ 新手赋值问题

int x=y=10; 这种写法本身是不对的。 x=y=10这样的只能用在调用赋值,而不能用在初始化。 所以应该是 int x,y; x=y=10; x,y是独立两个变量, 单独改变y=5不影响x值。 所以是x=10, y=5;

你要知道A b=A("2");a=b;和a=A("2);是不同的,前者是在声明的同时赋值,那么就不叫赋值了,而叫做复制初始化,而后者才是赋值。 另外用=将一个对象赋值到另一个同类对象,如果没有重载=的话,那么会有一个默认赋值操作符,就是直接把=右边对象的...

void swap( int *a, int *b ) //两数交换函数 { int c=*a; *a=*b; *b=c; } if ( ac,自己补充全代码吧

错误的原因是:数组a的大小n需要是一个常数,而不是变量。 应该用: define n 10 int a[n] = {0}; // 这一句没有错

string s(1,'a'); cout

p只是a数组里元素的副本,若要修改数组中元素的值,p必须为引用类型: for(auto &p:a) p = true;

(1)对于const和reference类型成员变量,它们只能够被初始化而不能做赋值操作,因此只能用初始化列表;初始化与赋值是不同的:赋值是删除原值,赋予新值,构造函数的意思是先开辟空间然后为其赋值,只能算是赋值,不算初始化;初始化列表就不一样...

初始化和赋值对内置类型的成员没有什么大的区别,像任一个构造函数都可以。但有的时候必须用带有初始化列表的构造函数: (1) 成员类型是没有默认构造函数的类。若没有提供显式初始化时,则编译器隐式使用成员类型的默认构造函数,若类没有默认...

基本类型应该没有区别 对于class struct什么的 ()赋值使用的是对应的构造函数 =赋值使用的是拷贝构造函数

#include #include int main() { char *a = "abcd"; char *b = (char *)malloc(sizeof(char) * strlen(a)); strcpy(b, a); free(b); return 0;}

网站首页 | 网站地图
All rights reserved Powered by www.jjdf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com