在学习本书过程中,我遇见了很多问题,先罗列如下,希望得到大家的帮助
1,第27页写道,将pi的初值设为ival所在的内存地址:int *pi=&ival
是不是应该改成 int pi =&ival
请问,两者有什么区别?
2,第33页有一语句:iofile.seekg(0)
接着书中说,seekg()可以将文件位置重新定位至文件的起始处,那么,是不是该文件原有的内容都被丢弃了?
3,第208页,练习中,作者提出的问题如何解决
也就是如何修改那个错误?
1,第27页写道,将pi的初值设为ival所在的内存地址:int *pi=&ival
是不是应该改成 int pi =&ival
请问,两者有什么区别?
2,第33页有一语句:iofile.seekg(0)
接着书中说,seekg()可以将文件位置重新定位至文件的起始处,那么,是不是该文件原有的内容都被丢弃了?
3,第208页,练习中,作者提出的问题如何解决
也就是如何修改那个错误?
1.不应该改,原书的写法没错,int *pi将pi声明为一个指针变量,而int pi将pi声明为一个整型变量,而保存内存地址的变量应该为指针类型。
2.读写文件时,为了方便操作,设置了一个文件读写指针,这是从C的文件函数库中就开始的,但设置这个指针,只是为了指示下一次文件读写的位置,修改文件指针的值并不会对文件内容发生任何影响,只要你在后面不写文件,不修改文件的长度,那么文件原有的内容是不会被丢弃的。
第3个问题,恕我没看过此书,不知道内容,无法回答。
for (int sum=0,ix=0;ix<ivec.size();++ix)
sum+=ivec[ix];
int average=sum/ivec.size();
作者说,根据c++ standard,sum的生存范围局限于上述的for循环中,此处的sum会造成undefined symbol编译错误,请问如何修改这个错误?
2、文件中操作中的seek()函数仅修改文件指针就象我们用++运算符修改数组指针一样。文件的内容是不会改变的。
for (int sum=0,ix=0;ix<ivec.size();++ix)
{
sum+=ivec[ix];
int average=sum/ivec.size();
}
int sum=0;
for (ix=0;ix<ivec.size();++ix)
sum+=ivec[ix];
int average=sum/ivec.size();
要是怕引起sum的作用域的改变影响程序的话,这段代码之前加一个{,后面加一个},把它定义为一个块。
for (int sum=0,ix=0;ix<ivec.size();++ix)
sum+=ivec[ix];
int average=sum/ivec.size();
作者说,根据c++ standard,sum的生存范围局限于上述的for循环中,此处的sum会造成undefined symbol编译错误,请问如何修改这个错误?
-------------------------------------------------------------------
根据c++ standard,sum的生存范围局限于上述的for循环中,修改可以按 roland_c(凤凰) , 但VC在这方面不符合c++ standard,以上代码在VC中完全可用,无需任何修改
pv可以依次指向每一个用以表示数列的vector,当然,我们也可以将数列的内存地址赋值给他:pv=&lucas 其中lucas代表数列名
请问,这里pv的值不就是一个内存地址么??
希望大家解释清楚一些,拜托了