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

第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是指向常量的指针常量   内容、指针均不可以改变

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值