已采纳回答 / Hello_W_ang
int a; int const *p=&a; 这时候改变a的值,*p是不会改变的,你只要记住 int const看成一个整体。他修饰的是*p,那*p一定不会变
2016-10-27
int main(void)
{
//定义int数组并初始化
int numArr[3] = {3, 8, 6};
//自动调用int getMax(int a, int b)
cout << getMax(getMax(a[0],a[1]), a[2]) << endl;
//自动调用返回数组中最大值的函数返回数组中的最大值
cout << getMax(numArr,3) << endl;
return 0;
}
{
//定义int数组并初始化
int numArr[3] = {3, 8, 6};
//自动调用int getMax(int a, int b)
cout << getMax(getMax(a[0],a[1]), a[2]) << endl;
//自动调用返回数组中最大值的函数返回数组中的最大值
cout << getMax(numArr,3) << endl;
return 0;
}
已采纳回答 / qq_冷暖自知丷_03796942
?:是一种比较判断运算,a>b?a:b的意思是,若a>b为真,则返回a,若a>b为假,则返回b。相当于,if(a>b){return a;}else{return b;}
2016-10-24
已采纳回答 / 自由洛梦
不可以~&是取地址符的意思,&p,或者&a表示的都是一个固定的地址。与指针的定义是矛盾的。如果要写成“&p=a”表示的会是“p指针指向地址为‘a’”,与想要表达的是不一样的。
2016-10-23
#include <iostream>
using namespace std;
int main(void)
{
int x = 3;
//定义引用,y是x的引用
int &y=x;
//打印x和y的值
cout <<x<<endl;
cout<<y<<endl;
//修改y的值
y = 20;
//再次打印x和y的值
cout<<"x="<<x<<","<<"y="<<y<<endl;
return 0;
}
using namespace std;
int main(void)
{
int x = 3;
//定义引用,y是x的引用
int &y=x;
//打印x和y的值
cout <<x<<endl;
cout<<y<<endl;
//修改y的值
y = 20;
//再次打印x和y的值
cout<<"x="<<x<<","<<"y="<<y<<endl;
return 0;
}
典型例子
①int x=3; const int &y=x;//x=10;正确//y=20;错误,不能改变y的值
②const int x=3;x=5;错误
③int x=3; const int y=x;y=5;错误
④int x=3;const int *y=&x;*y=5;错误
⑤int x=3,z=4;int *const y=&x;y=&z;错误
⑥const int x=3; const int &y=x;y=5;错误
①int x=3; const int &y=x;//x=10;正确//y=20;错误,不能改变y的值
②const int x=3;x=5;错误
③int x=3; const int y=x;y=5;错误
④int x=3;const int *y=&x;*y=5;错误
⑤int x=3,z=4;int *const y=&x;y=&z;错误
⑥const int x=3; const int &y=x;y=5;错误
2016-10-21