C++笔记

第一章:程序=算法+数据结构

第五章-函数

模块化程序设计:将程序中划分成一定功能的模块,封装不同功能的模块,最后把所有函数组装起来。一个C语言程序由主函数和诺干个用户函数组成。

函数定义:

存储类型 数据类型 函数名(行参表){}

存储类型:extern:外部函数,可以被其他文件中的函数调用;static:内部函数,默认为外部函数

外部函数定义 f.cpp:extern

使用:entern f(int i)声明

即外部函数或全局变量,使用时已经要定义,然后再使用中再声明后使用。

数据类型:即返回值类型,如int,double,bool

函数名:C++支持重载,依据不同的参数列表,①参数数据类型②参数数量③参数顺序

形式参数表:可以是变量,数组,指针变量,或结构体,共用体类型。可以设置形参默认值,但注意必须要先无默认,后续皆要默认。在调用时,省略该带有默认值参数,后续皆应省略。如果是先声明后使用的话,声明时给出默认值,则定义时不用。

值传递方式:

①值传递:实参单向传递给形参,不会改变实参值。

②地址传递方式:双向传递,实参只能是变量地址,数组元素的地址,数组名。

若用数组名传递:调用格式:函数名(数组名);存储类型 数据类型 函数名(数据类型 数组名[数组长度])也可以不自鸣数组长度,但常需要在定义一个形参int n。实参形参大小可以不同。

返回值类型:只能返回整型,实形,字符型,结构体等,不可返回数组。return类型和函数定义不同时,将会自动转化为函数返回的类型

全局变量:外部全局变量和静态全局变量。C++访问全局变量:::A=

递归函数的设计:(1)递归结束条件 if (2)递归计算公式

一般结构:if() f(k=)

else return f(k-1)

第六章-指针

指针即地址,变量名和变量不一样。

变量与指针变量的区别:定义*p,使用*p,p的值时地址,p=&a。

指针没有赋值时为空。单目运算符从右往左

指针与一元数组:p=arr,p+i;

区别出:对调指针指向的内存单元的值。对调指针变量的指向

指针与二元数组:本质:a[i]+j;

在C语言中,变量名本身代表该函数的入口地址。如函数名,数组名。

指向指针的数组,指向函数的指针变量

第七章-构造数据类型

结构类型:

struct 结构体类型名

{定义变量

} 变量名,指针变量,初始化等;

指针变量的引用:p->name 或 (*p).name

动态分配内存:指针变量=new 类型 (初值) 撤销内存:delete 指针变量/[] 数组

共用体类型:union ,其余与结构体一样,选哟注意的是,共用体只能存入一个数据。

枚举类型:enum ,值为括号中的值。

类:类是一种特殊的结构体,public,private,protect.

构造函数:类的数据初始化 析构函数:~类名:删除时的操作。

typedef定义类型别名。

第八章:文件概述--

文件类型FILE 文件指针 FILE*p

打开:p=fopen(文件名即地址,操作)

操作:fputs(str/ch,p) fgets(str/ch,p),fread(对象,size,n,p) fwrite()

关闭:fclose(fp);

第九章-编译预处理

程序运行过程:预处理(预编译)--编译--连接--运行

预定义在编译之前,C语言中有三种预处理命令,分别是:①宏定义②文件包含③条件包含

9.1宏定义

所谓宏定义既是将一个标识符定义为一个字符串。宏名以大写组成用于区分。

9.1.1不带参数的宏定义--本质上为替换,在编译前将源代码中的宏名替换成字符串

定义格式:#define 宏名 字符串

①预处理命令不是语句,不用分号;,C语言预处理命令都是以\n为结尾。

②宏定义定义域为开始定义到程序结束,若要限定,用#undef 宏名

③可以嵌套定义,即一个宏定义中可以使用已经定义的宏。

注:宏定义只是替换,即使是表达式也只是带入。

使用宏的目的:①提高程序效率。修改数据是只需修改一个数据。例数组亦可以修改宏来需修改数组长度。

②提高代码通用性,不占用内存。

9.1.2带有参数的宏定义和引用

定义格式:#define 宏名(形参表)字符串 即定义一个公式。

①宏展开会增加代码长度,但降低运行时间,增加编译时间;函数缩短函数长度,但会增加运行时间。

②宏名无类型,调用函数只能得到一个返回值,但宏1可以设法得到多个。

eg:#define c(r,l,s,v) l= ;r= ;

③使用宏定义可以使打印格式简化。

9.2 文件包含处理--即一个源文件中包含另一个文件中的全部内容,在编译预处理时,将会用指定的内容替换该语句,成为源代码的一部分。

格式一:#include " 路径名或包名.h" 常用,系统首先会在当前层次然后再规定路径查找。

格式二:#include < > ;

可以包含多个需要的文件作为头文件。

9.3 条件编译--根据对源程序中某段程序中通过条件判断是否参加本次编译

命令格式一:如果已经定义了宏,则编译程序段一

#ifdef 宏名

程序段一;

#else

程序段二;

#endif

命令格式二:如果没有定义

#ifndef 宏名

程序段一;

#else

程序段二;

#endif

命令格式三:

#if (条件)

程序段一

#else

程序段二

#endif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值