c++文件读取之write参数理解
2013-06-07 10:13
357 查看
在网上查了一些资料,了解了write函数。
write(constant char*content,int size)参数的解释:
-------------content是 char类型的一个指针
-------------size指的是这个content内容的大小
面对这个函数,心中有以下疑问:
1、为什么content是一个char类型的指针,而不是其他类型的指针
理解: 首先char类型是一个byte的,而一个byte是内存中最小的单元,任何其他的c++的基本类型都可以转化为一个byte或者几个byte,也就说可以转化为一个char类型或者几个char. size参数就是计算content有多少个byte,这样就把content里面所有的byte都写入文件了,在这里我们暂时不考虑类型的问题,也就是说不考虑传给content的是int、还是double类型,实际上也不用考虑是什么类型,因为这个函数的目的就是把content里面的所有byte存到文件里面就可以了。
2、为什么content是一个指针,而不是一个数组或者其它的什么的
理解:我们知道在c++里面,不管是传递指针还是数组,实际上传递的都是地址,都是值传递,只不过这个值是一个地址(这个地址在指针变量里面保存)。数组传递的就是首地址,所以在write里面传递指针,就是把首地址(int型和double型的首地址就是他们本身的地址)传进去,然后再根据size的大小,把这个首地址所指的内容一个byte一个byte的向文件里面写东西。
3、若传递给content的是一个对象,并且对象里面有指针,这个write函数就会有问题,为什么呢?
理解:这个就与这个size有关了,一般情况下我们就算大小就是用sizeof()这个操作来计算的,如果对象里面有指针,这个sizeof()计算的不是这个对象的真正的大小。所以前后不一致造成问题。
write(constant char*content,int size)参数的解释:
-------------content是 char类型的一个指针
-------------size指的是这个content内容的大小
面对这个函数,心中有以下疑问:
1、为什么content是一个char类型的指针,而不是其他类型的指针
理解: 首先char类型是一个byte的,而一个byte是内存中最小的单元,任何其他的c++的基本类型都可以转化为一个byte或者几个byte,也就说可以转化为一个char类型或者几个char. size参数就是计算content有多少个byte,这样就把content里面所有的byte都写入文件了,在这里我们暂时不考虑类型的问题,也就是说不考虑传给content的是int、还是double类型,实际上也不用考虑是什么类型,因为这个函数的目的就是把content里面的所有byte存到文件里面就可以了。
2、为什么content是一个指针,而不是一个数组或者其它的什么的
理解:我们知道在c++里面,不管是传递指针还是数组,实际上传递的都是地址,都是值传递,只不过这个值是一个地址(这个地址在指针变量里面保存)。数组传递的就是首地址,所以在write里面传递指针,就是把首地址(int型和double型的首地址就是他们本身的地址)传进去,然后再根据size的大小,把这个首地址所指的内容一个byte一个byte的向文件里面写东西。
3、若传递给content的是一个对象,并且对象里面有指针,这个write函数就会有问题,为什么呢?
理解:这个就与这个size有关了,一般情况下我们就算大小就是用sizeof()这个操作来计算的,如果对象里面有指针,这个sizeof()计算的不是这个对象的真正的大小。所以前后不一致造成问题。
相关文章推荐
- C++ sstream 从文件中读取参数
- C++ 格式读取文件中的参数
- C++读写ini配置文件GetPrivateProfileString()&WritePrivateProfileString()
- C++文件读取
- Xcode 编译C++程序,freopen 读取文件时文件路径问题
- c++ 读取文件 最后一行读取了两次
- C++使用system带参数调用exe程序并把结果输出到文件
- C++ 读取文件/输入的方式总结
- opencv读取彩色/灰度图片像素值并存储在本地文件中c++代码实例及运行结果
- C++中Txt文件读取和写入
- c++读取txt文件
- Springboot学习笔记之读取全局配置文件参数
- C++如何读取txt文件,文件比较大想一行一行的读。
- windows 与linux 下用C++读取sqlite实现文件复制(三)
- C++中txt文件的读取和写入
- C++调用GDAL库读取并输出tif文件,并计算斑块面积输出景观指数:CSD
- C++中Txt文件读取和写入
- C++依次读取文件中的字符串——getline()函数的应用
- c++文件的读取与写入
- C++实现文件写入和读取