C与C++语法总结

来源:互联网 发布:唐山炭知天下 编辑:程序博客网 时间:2024/05/01 12:00

【C编程思想:数据结构+算法】

C语言包含内容繁多,在这里做了一个归纳总结。分为6个部分:

数据类型

存储类型

基本要素

预处理

函数

文件操作


一、基本要素

1、常量

(1)数字常量

(2)字符常量

          普通字符:用单引号 ' ' 包起来。例如:‘a’,‘c’

         转义字符:以"\"开头,并用单引号 ' ' 包起来。例如:‘\n’(表示换行)   

(3)字符串常量

          双引号包起来,并在末尾自动加上‘\0’作为结束标志。例如:“hello world”。

(4)符号常量

          宏的使用要注意:a、宏无分号,无作用域,无生存期,无类型;b、加括号    

          例如:#define fps (50) 


2、变量


3、标识符

由字母、下划线、数字组成,以字母、下划线开头。包括:变量名、函数名、符号常量


4、运算符

(1)结合性:优先级相同则从左向右运算      

(2)优先级:单目 > 双目 > 三目

单目:[]、. 、->、指针

双目:算术:+ - * /

  位运算:& 、| 、~、^、《、》

             关系:>  <  >=  <= == !=

             逻辑:&&、 ||

三目:条件运算符(?:)

双目运算优先级:算术 > 移位> 关系 > 位> 逻辑 


5、表达式 = 运算对象 + 运算符


6、语句

表达式语句

函数调用语句

空语句

选择语句

循环语句

复合语句


二、预处理

1、宏

2、文件引用

3、条件编译


三、函数

1、形参:值传递,指针传递

2、嵌套

3、递归



四、数据类型

1、基本类型

整型

浮点型

字符型

枚举型

2、构造类型

数组

结构体

共用体

3、指针类型

4、void类型


五、储存类型

1、作用域

全局

局部

2、生存期

3、存放位置

注:

static:1、函数内:本函数内使用,值为上次函数内调用的值

            2、模块内:本模块内使用,值为上次模块内的值

(限定作用范围)

const:目的:阻止一个变量值改变

              1、只读变量

              2、定义时必须初始化

               (限定变量)

六、文件操作

1、基于文件指针的文件操作(缓冲):自动在内存中开辟一个缓冲区。ANSI C标准。

(1)文本流:便于输出。fgetc()、fputc()。

(2)二进制流:便于存储。fread()、fwrite()。

2、基于文件操作符的文件操作(非缓冲)。Linux系统调用。


【C++编程思想:对象+消息】

一、封装(类与对象)

1、访问控制

public/protected/private

2、成员函数

   (1)构造函数:

            a、产生并初始化对象

            b、拷贝构造函数:只有一个参数,并且参数是本类的引用

用于三种情况:1、用一个同类型的对象初始化一个对象

                         2、做为实参传给一个函数

                         3、函数返回时赋值一个对象

   (2)析构函数

   (3)操作符重载

3、函数的重载:同一个类中,同名函数的参数类型和个数不同

     函数的覆盖:派生类函数覆盖基类的同名函数,此基类函数必须是虚函数。派生类函数和基类虚函数参数个数和类型相同,返回类型相同

               函数的隐藏:派生类函数隐藏基类的同名函数。

                                   a、两个函数参数相同,基类不是虚函数

                                   b、两个函数参数不同,不论基类是不是虚函数,都会隐藏

4、对象与子对象


二、继承

1、单继承

(1)公有继承

          基类中的public/protected继承为派生类的public/protected,类内可以访问,类外派生类对象可以访问继承的共有成员。

          赋值兼容:派生类的对象/引用/指针可以赋值给基类对象/引用/指针

(2)私有继承

          基类中的public/protected继承为派生类的private,类内可以访问,类外派生类对象不能访问。

          派生类类内的成员函数可以访问基类的public/protected成员,类外不可访问基类的所有成员

(3)保护继承

         基类中的public/protected继承为派生类的protected,类内可以访问,类外派生类对象不能访问。

         派生类类内的成员函数可以访问基类的public/protected成员,类外不可访问基类的所有成员

2、多继承

(1)二义性

(2)虚基类

3、继承机制下的构造与析构函数

(1)析构函数的调用顺序:派生类  --->  派生类的子对象  --->  基类---> 虚基类 

 

三、多态

1、静态联编:根据调用时使用的实参决定调用那个函数

(1)重载:同一个类中,同名函数的参数类型和个数不同

(2)模板:以独立于任何特定类型的方式编写代码

2、动态联编

      (1)虚函数:在基类中定义并说明为virtual,并在派生类中重定义

      (2)实现动态联编需要满足三个条件:

   a、满足赋值兼容规则

   b、要声明虚函数

   c、由成员函数来调用或者通过指针、引用来访问虚函数

        通过指针访问虚函数时,指针所指向对象的类型决定调用哪个函数

        通过引用访问虚函数时,与指针类似。

3、通过对象名访问虚函数时,调用那个类的函数取决于定义对象名的类型(不属于动态联编)


四、I/O流类库

ios类派生的istream和ostream类分别提供对流进行提取和插入操作


五、异常处理
0 0