已采纳回答 / onemoo
准确地表达应该是:p是一个指向const int型变量的指针,所以p无法修改其指向的int对象。但p本身不是const的,所以能被改变(也就是可以指向别的int)。*p是解引用p以得到p指向的对象。代码中第一个*p得到x,但只是用来读取x的值,并没有修改x的内容。然后代码将y的地址赋予了p,再次*p时就得到了y,同样代码中也没有更改y的内容,所以说没有改变*p的值。 那个讲解只说“*p”容易会引起理解上的歧义。还应该注意到一点:p是一个指向const int的指针,说明p可以指向const int对象,...
2015-06-22
int getMax(int a, int b){return a > b ? a : b;}
int getMax(int *a) { int maxNum = a[0]; for(int i = 1; i < 3; i++) { if(maxNum < a[i]){maxNum = a[i];}}return maxNum; } int main(void) { int numArr[3] = {3, 8, 6}; cout << getMax(3, 6) << endl;
cout << getMax(numArr) << endl;
return 0;
}
int getMax(int *a) { int maxNum = a[0]; for(int i = 1; i < 3; i++) { if(maxNum < a[i]){maxNum = a[i];}}return maxNum; } int main(void) { int numArr[3] = {3, 8, 6}; cout << getMax(3, 6) << endl;
cout << getMax(numArr) << endl;
return 0;
}
已采纳回答 / onemoo
或的关系。但注意这里有坑:函数在传参时,参数是可以进行自动转换的。假如调用函数时传的参数类型没有完全匹配任何一个可重载函数,而且都可以进行类型转换的话,编译器会报歧义错误的。
2015-06-20
const int* p=&a 等价于 const int *p=&a;
int x=3; 等价于 int x=3; 建议将& 与 *符号位于 类型声明后 (int& y=x; 而不是 int &y=x;)以便于新同学区分取址符
int &y=x; int& y=x;
int x=3; 等价于 int x=3; 建议将& 与 *符号位于 类型声明后 (int& y=x; 而不是 int &y=x;)以便于新同学区分取址符
int &y=x; int& y=x;
2015-06-16