最新回答 / onemoo
const int const *p 这样声明是错的,这两个const都是修饰int的,重复了。要么写成 const int *p 要么写成 int const *p,这两种写法中const都是修饰int的,所以p是一个指向const int的指针。其实你截图中写的没错,想把p声明称const指针,const需要写在*后面。
2015-07-18
已采纳回答 / onemoo
C++的<fstream>头文件中有 fstream ifstream ofstream 可以操作文件,具体用法请搜索。上楼说的fopen fread fwrite是C风格的IO库函数,包含在C++的<cstdio>头文件中。
2015-07-17
已采纳回答 / onemoo
const int const *p 这样声明是错的,这两个const都是修饰int的,所以重复了。应该写成 const int *p 或 int const *p,这两种写法是一样的,都是将p声明为指向const int的指针。我猜你想比较的是 const int * const p。这样是将p声明为指向const int的const指针,就是说p本身也是const的。
2015-07-15
已采纳回答 / Vaquish
第一个是在getMax(*arr,count)的作用域下进行输出,所以调用getMax(*arr,count);第二个是在getMax(numArr[0],numArr[2])的作用域下输出,调用的是getMax(int a,int b);所以,两个不一样
2015-07-11
已采纳回答 / onemoo
你要理解变量类型的重要性。p的类型是指向const int的指针,如果你解引用这个指针的话,得到的会是const int类型。p的类型决定了这样的性质,这性质与p到底指向谁是无关的。所以即使p指向的是个非const的int对象,但如果你通过p来访问所指的内容的话,这内容还是会被当作const的。就是说你无法通过*p来修改它,所谓的“*p的值无法修改”就是这个意思。当然 i 本身是普通的int,自然可以通过 i 来任意修改了。故const int指针可以指向const int对象,也可以指向普通的int对象...
2015-07-09
已采纳回答 / onemoo
参数列表中的 *arr 是可以写成 int arr[] 的。在函数声明的参数列表中声明的数组参数,是会被视作指针的。抱歉,请忽略上一条回答,我没有注意到这个是C++问题!刚才的回复中可加入的限定符是C语言的特性,在C++中没有这个特性。在C++14中,也仅能在[]中加入constexpr这一个限定符。
2015-07-07
已采纳回答 / 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