学习C/C++ 一

C/C++不懂知识点理解

以书本讲解为准,自己理解不一定对,欢迎指正

知识点一

#         //空指令,无任何效果
#include  //包含一个源代码文件
#define   //定义宏
#undef    //取消已定义的宏
#if       //如果给定条件为真,则编译下面代码
#ifdef    //如果宏已经定义,则编译下面代码
#ifndef   //如果宏没有定义,则编译下面代码
#elif     //如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif    //结束一个#if...#else条件编译块

知识点二

const限定符
const限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。

定义:const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。
目的:const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。

举例:

const int a = 10;  //"a"不允许修改,是一个常量.
const int *a;  //"*a"不可以改变,但是"a"可以被改变.
int const *a;  //"*a"不可以改变,但是"a"可以被改变.
int* const a = &b;  //"a"不能变,"*a"可以变

知识点三

文件读写操作:

FILE这个结构包含了对文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,如下:

  1. fopen() 打开流
  2. fseek() 在流中定位到指定的字符
  3. ftell() 文件位置指针当前位置相对于文件首的偏移字节数
  4. fread() 从流中读指定个数的字符
  5. fclose() 关闭流
FILE *fopen( const char * filename, const char * mode );

fopen() 函数打开一个文件,并返回一个FILE指针.
filename是文件名,mode是模式,如下:

操作符 含义
r 打开只读文件,该文件必须存在
r+ 打开可读写的文件,该文件必须存在
rb+ 读写打开一个二进制文件,只允许读写数据
rt+ 读写打开一个文本文件,允许读和写
w 打开只写文件,若文件存在则覆盖文件;若文件不存在则建立该文件
w+ 打开可读写文件,若文件存在则覆盖文件;若文件不存在则建立该文件
wb 只写打开或新建一个二进制文件;只允许写数据
wb+ 读写打开或建立一个二进制文件,允许读和写
wt+ 读写打开或着建立一个文本文件;允许读写
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件
at+ 读写打开一个文本文件,允许读或在文本末追加数据
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据

此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果失败,返回NULL。

int fseek(FILE *stream, long offset, int origin);

fseek()函数一般用于二进制模式打开的文件中,功能是定位到流中指定的位置,如果成功返回0,参数offset是移动的字符数,origin是移动的基准.origin参数含义如下:

符号常量 基准位置
SEEK_SET 0 文件开头
SEEK_CUR 1 当前读写的位置
SEEK_END 2 文件结尾
 long ftell(FILE *fp)

ftell()函数:得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数.

size_t fread(void *ptr, size_t size, size_t n, FILE *stream);

fread()函数:从流中读指定个数的字符,参数ptr是保存读取的数据,void的指针可用任何类型的指针来替换,如char、int *等等来替换;size是每块的字节数;n是读取的块数,如果成功,返回实际读取的块数(不是字节数),本函数一般用于二进制模式打开的文件中。

int fclose(FILE *fp);

fclose()函数的功能就是关闭用fopen()打开的文件,如果成功,返回0,失败返回EOF。

2020/11/12

你可能感兴趣的:(学习,C++)