您的位置:首页 > 编程语言 > C语言/C++

C语言知识点简介(可以根据这个简单复习一下)

2012-11-04 16:47 211 查看
第2章 C语言数据类型、运算符与表达式
2.1 C语言的数据类型
1.数据类型分为三种:基本类型、构造类型、指针类型。

基本类型:字符型、整型、实型(单精度、双精度)、无值型

构造类型:枚举型、数组、结构体、共用体

2.2 C语言常量
2.2.1 数值

1.整型常量

十进制、八进制(0开头)、十六进制(0x开头)。

2.实型常量

小数形式(整数+小数点(+小数),只有7位有效数字,第八位不四舍五入,其他位四舍五入)、指数形式(eg:123e+01)、双精度实数。

3.字符常量

单引号括起一个字符,占一个字节。

4.字符串常量

双引号括起字符序列,最后一个存储字节为‘\0’。

5.符号常量

符号代替常量。(宏)

2.3 C语言变量
2.3.1 基本变量类型

char int float double void

2.3.2 类型修饰符(iOS系统中,int占32位,4个字节)

signed unsigned long short

2.3.3 访问修饰符

const:程序运行过程中值始终保持不变。

volatile:提醒编译程序,该变量的值可以不通过程序中明确定义的方法来改变。

2.3.4 变量的定义(最好初始化)

类型 变量名表;(=常数;)

2.4 类型转化(对数据长度进行临时性转换)
2.4.1 显式类型转化

(类型说明符)(表达式)

eg:(float)a

(int)(x + y)

2.4.2 隐式转换

发生在不同数据类型的混合运算时(顺序:char–>int->unsigned->long->double-> float)

2.5 运算符和表达式
2.5.1 运算符简介

种类:算术运算符(+ - * / % ++ --)、关系运算符(< > == >= <= !=)、逻辑运算符(&& || !)、位操作运算符(& | ~ ^ << >>)、赋值运算符(= += -= *= /= %= &= |= ^= >>= <<=)、条件运算符(? :)、逗号运算符(,)、指针运算符(& *)、求字节数运算符(sizeof)、特殊运算符(() [] 成员运算符)

2.5.2 算术运算符和表达式

1.基本运算符(左结合性)

+ - * / %(参与运算的量为整型)

2.运算符优先级

* = / = % > + = -

3.自增1,自减1运算符(右结合性)

4.算术表达式

<操作数><算术运算符><操作数>

2.5.3 赋值运算符和表达式

1.右结合性

左边:有存储单元的元素

右边:各类表达式、赋值表达式

2.<变量><赋值运算符><表达式>

2.5.4 关系与逻辑运算符和表达式

1.左结合性

2.表达式 关系运算符 表达式

2.5.5 逻辑运算符和表达式

1.!右结合性

&& || 左结合性

2.表达式 逻辑运算符 表达式

2.5.6 其它运算符和表达式

1.三项条件运算符和表达式

<表达式1>?<表达式2>:<表达式3>

右结合性

2.逗号运算符和表达式

表达式1,表达式2,…,表达式n

“=”优先级高于逗号运算符

3.求字节数运算符

操作对象:类型标识、表达式

2.6 数据类型、运算符与表达式举例
第3章 分支、循环
3.1 分支
3.1.1 if语句

1.if(表达式)语句;

2.if(表达式)

语句1;

else

语句2;

3.if(表达式1)

语句1;

else if(表达式2)

语句2;

else if(表达式3)

语句3;



else if(表达式m)

语句m;

else

语句n;

3.1.2 switch…case语句

switch(表达式){

case 常量表达式1:语句1;

case 常量表达式2:语句2;



case 常量表达式n:语句n;

default:语句n+1;

}

1) break语句专用于跳出switch语句

2) case与default顺序可以变动

3) default子句可以省略不用

3.2 循环
3.2.1 while循环

while(表达式){语句};

3.2.2do…while循环

do

{语句};

while(表达式);

3.2.3for循环

for(表达式1:表达式2:表达式3)

{语句};

3.2.4三种循环方式区别

while:已知结束条件

do…while:已知结束条件、至少执行一次

for:已知循环次数

3.3 break与continue
3.3.1 break

跳出switch语句或跳出本层循环

3.3.2 continue

结束本次循环,不跳出循环

第4章 函数、数组、结构体
4.1 函数
分类:(1)从函数定义角度:库函数、用户定义函数
(2)有返回值函数、无返回值函数
(3)从主调函数和被调函数之间数据传送的角度:无参函数、有参函数
4.1.1 函数的作用(代码的复用)
main函数作用:程序的入口

4.1.2 函数的声明与定义
1.先声明再调用
声明:类型说明符 函数名([形参表]);
2.定义:
类型标识符 函数名()
{
声明部分
语句
}

类型标识符 函数名(形式参数表列)
{
声明部分
语句
}
3.形参、实参
形参:在函数定义中
实参:在主调函数中
4.函数返回值
(1)只能通过return语句返回主调函数
(2)函数值类型和函数定义中函数的类型保持一致
(3)不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”

4.1.3 函数的调用
1.调用形式:函数名(实际参数表)
2.调用函数方式:函数表达式、函数语句、函数实参
4.函数的嵌套调用
5.函数的递归调用(Hanoi塔问题)
4.2 数组
4.2.1 一维数组的定义
定义方式:类型说明符 数组名[常量表达式];

4.2.2 一维数组元素的引用
形式:数组名[下标]

4.2.3 一维数组的初始化
形式:类型说明符 数组名[常量表达式]={值,值,…,值};
冒泡排序:
int main(int args,const char *argv[])
{
int array[5] = {8,24,16,19,6};
for(int j = 0;j < 4;j++)
{
for(int i = 0;i < 4 –j;i++)
{
if(array[i] > array[i+ 1])
{
int temp = array[i];
array[i] = array[i +1];
array[i + 1] = temp;
}
}
}
}

4.2.4 二维数组的定义和引用
1.二维数组的定义
类型说明符 数组名[常量表达式1][常量表达式2]
2.二维数组元素的引用
数组名[下标][下标]
3.二维数组的初始化
可按行分段赋值,也可按行连续赋值

4.2.5多维数组
定义形式:类型说明符 数组名[常量表达式1][常量表达式2][常量表达式3]…
4.3 结构体
4.3.1 结构体的作用
数据类型可以不一致
4.3.2 结构体的定义
1.注意最后的分号
struct 结构名
{类型说明符成员名;};
2.结构类型变量的说明
(1)struct stu
{};
struct stu boy1,boy2;
(2)struct stu
{}boy1,boy2;
(3)struct
{}boy1,boy2;

第5章 指针
5.1指针
5.1.1 指针的概念

一个变量的地址称为该变量的“指针”。

如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”。

注意:指针要指向明确地址,指针指向内容要有足够空间。

5.1.2 指针的声明(含指针类型)

基类型 * 指针变量名;

5.1.3 指针的用法

(1)&

(2)*

5.2 指针数组、数组指针
5.2.1 数组指针

数组元素的指针,将数组首元素的地址赋值给指针变量。

5.2.2 指针数组

一个数组,若其元素均为指针类型的数据,称为指针数组。

类型名 *数组名[数组长度];

5.3 结构体指针
一个结构体变量的指针就是该变量所占据的内存段的起始地址。

5.3.1 指向结构体变量的指针

->是指向运算符

(*p).num就是p->num

5.3.2 指向结构体数组元素的指针

5.4 指向指针的指针
第6章 宏、枚举
6.1 宏
6.1.1 宏的概念

原则:原封不动的替换

6.1.2 定义宏及使用

1.不带参数的宏定义

#define 标识符 字符串

2.带参数的宏

#define 宏名(参数表)(字符串)

函数调用在编译后程序运行时进行,并分配内存。宏替换在编译前运行,不分配内存。

6.2 枚举类型
枚举类型是一种基本数据类型,不是构造类型,因为它不能再分解为任何基本类型。

6.2.1 枚举类型的定义和枚举变量的说明

1.形式:enum 枚举名[枚举值表];

2.(1)先定义后说明,(2)同时定义说明,(3)直接说明。

总结三种方式

枚举
结构体
(1)

enum 枚举名{枚举值表};

enum 枚举名a,b,c;

struct 结构名{成员表列};

struct 结构名boy1,boy2;

(2)

enum 枚举名{枚举值表}a,b,c;

struct 结构名{成员表列}boy1,boy2;

(3)

enum {枚举值表}a,b,c;

struct {成员表列}boy1,boy2;

6.2.2 枚举类型变量的赋值和使用

1.枚举值是常量,不是变量,不能赋值。

2.枚举元素本身由系统定义了一个表示序号的数值。从0开始依次往下排。

6.3 typedef、static、const
6.3.1 typedef

定义形式:typedef 原类型名 新类型名;

宏定义是由预处理完成的,typedef是在编译时完成的。

6.3.2 static声明变量

使局部变量的值在函数调用结束后不消失而保留原值,指定为静态局部变量。(在静态存储区内分配存储单元)

6.3.3 const变量

1.不允许改变的变量。

2.const与#define区别:const是运行时内存中实际存在,#define在编译期进行处理。

3.eg:

const int *p =a;//p是指向常量的指针 内容不可以改变

int *const p =a;//p是指针常量 指针不可以改变

const int *constp = a;//p是指向常量的指针常量 内容、指针均不可以改变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐