已采纳回答 / onemoo
或的关系。但注意这里有坑:函数在传参时,参数是可以进行自动转换的。假如调用函数时传的参数类型没有完全匹配任何一个可重载函数,而且都可以进行类型转换的话,编译器会报歧义错误的。
2015-06-20
已采纳回答 / JACK630
上面一组:const int x = 3 表示x为一个常量,其值为3,且x的值是不能改变的;int *y = &x 定义了一个指针变量y,y指向x,y存放的是x的地址,改变y的的值也就相当于改变了x的值,这与常量x不能被改变相冲突,所以说有危险;下面一组:可以正常使用;
2015-06-05
最赞回答 / 伊兮尘昔
引用规避了指针的风险,对引用不管怎么赋值都是安全的int &b = a;int *p = a;在程序的应用中,可能会不小心就使用p = 1;而不是*p = 1;这样的赋值语句,而前者直接改地址值的行为是很危险的,因为0x1这个地址可能存放的是重要数据,禁止读写的区域。而引用就不会有这个问题
2015-05-31
最赞回答 / Absolute_Duo
这个应该是因为后面的指针问题,const int类型的变量不能定义非const类型的指针所以const int a=3;const int *p=&a;这样应该是可以的
2015-05-19