C语言学习笔记

一、 学习方法和基本概念

C语言发展史:

​ 1960 原型A语言->ALGOL语言
​ 1963 CPL 语言
​ 1967 BCPL
​ 1970 B语言
​ 1973 C语言

C语言特点:

​ 1.基础性语言
​ 2.语法简洁、紧凑、方便、灵活
​ 3.运算符、数据结构丰富
​ 4.结构化、模块化编程
​ 5.移植性好、执行效率高
​ 6.允许直接对硬件进行操作

C语言学习建议

​ 1.概念的正确性
​ 2.动手能力
​ 3.阅读优秀的程序段
​ 4.大量练习、面试题

C课程讲解思路:

​ 1.基本概念
​ 2.数据类型、运算符和表达式
​ 3.输入输出专题
​ 4.流程控制
​ 5.数组
​ 6.指针
​ 7.函数
​ 8.构造类型
​ 9.动态内存管理
​ 10.调试工具(gdb,make)
​ 11.常用库函数

平台介绍:

​ redhat6 vim gcc(make)
​ 源文件-预处理-编译-汇编-链接-可执行文件

基本概念-编程注意的问题

//hello.c
#include 
#include 

int main(void)
{
    printf("Hello world!\n");
    exit(0);
}

1、以Hello world为例对写程序的思路提出如下要求:

​ 1)头文件正确包含的重要性
​ 2)以函数为单位来进行程序编写
​ 3)声明部分+实现部分
​ 4)return 0;
​ 5)多用空格、空行
​ 6)添加注释

2、算法:

​ 解决问题的方法。(流程图、NS图、有限状态机FSM)

3、程序:

​ 用某种语言实现算法。

4、进程

5、防止写越界,防止内存泄露。谁打开谁关闭,谁申请谁释放。

二、数据类型、运算符和表达式

1、数据类型C语言学习笔记_第1张图片

​ 1)所占字节数
​ 2)存储区别
​ 3)不同类型的数据间进行转换(隐式,显式-〉强制类型转换)
​ 4)特殊性
​ (1)布尔型bool
​ (2)float类型
​ (3)char型是否有符号
​ (4)不同形式的0值:0,‘0’,“0”,‘\0’
​ (5)数据类型与后续代码中所使用的输入输出要相匹配

2、常量与变量

常量:在程序执行过程中值不会发生变化的量。

​ 分类:整形常量、实型常量、字符常量、字符串常量、标识常量
​ 字符常量:由单引号引起来的单个字符或转义字符 \? \ddd 三位八进制 ‘\015’ \xhh :二位十六进制 ‘\x7f’
​ 字符串常量:由双引号引起来的一个或多个字符组成的序列。
​ 标识常量:#define ,处理在程序的预处理阶段,占编译时间,不占运行时间。特点是一改全改,缺点是不检查语法,只是单纯的宏体与宏名之间的替换。

变量: 用来保存一些特定的内容,并且在程序执行过程中值随进会发生变化的量

​ 定义: [存储类型] 数据类型 标识符=值
​ TYPE NAME = VALUE
​ 标识符:由字母、数字、下划线组成且不能以数字开头的一个标识符序列,写标识符尽量做到见名生义。
​ 数据类型:基本数据类型+构造类型
​ 值:注意匹配
​ 存储类型:auto static register extern(说明型)
​ auto:默认,自动分配空间,自动回收空间。
​ register:(建议型)寄存器类型,只能定义局部变量,不能定义全局变量;大小有限制,只能定义32位大小的数据类型,如double就不可以。寄存器没有地址,所以一个寄存器类型的变量无法打印出地址查看或使用。
​ static:静态型,自动初始化为0值或空值,并且其变量的值有继承性。另外,常用于修饰变量或函数。
​ extern:说明型,意味着不能改变被说明的变量的值或类型。

变量的生命周期和作用范围

​ 1)全局变量和局部变量
​ 2)局部变量和局部变量
​ 3)参考图片 存储类型比较
C语言学习笔记_第2张图片

3、运算符和表达式

​ 表达式与语句:表达式+;-〉语句

运算符部分:

​ 1)每个运算符所需要的参与运算的操作个数
​ 2)结合性
​ 3)优先级
​ 4)运算符的特殊用法
​ % 左右操作数必须为整数
​ ++ –: 运算符在前,先进行计算,再取变量值使用
​ 变量在前,先取变量值使用,再进行计算。
​ 逻辑运算符(&&,||)的短路特性
​ 5)位运算的重要意义
​ 将操作数中第n位置1,其他位不变:num = num | 1 << n;
​ 将操作数中第n位清0,其他位不变:num = num &~(1 << n);
​ 测试第n位:if(num & 1 << n)
​ 从一个指定宽度的数中取出某几位?

C运算符

算术运算符:(+ - * / % ++ –)
关系运算符:(< <= == > >= !+)
逻辑运算符:((! && ||)
位运算符:(<< >> ~ | ^ &)
赋值运算符:(= 及其扩展)(+= -= *= /=)
条件运算符:(?:) 如:op1 ? op2 : op3
逗号运算符:(,)
指针运算符:(* &)
求字节数 :(sizeof) sizeof(int)
强制类型转换:(类型)
分量运算符 :(. ->)
下标运算符 :([])
其它 :(())

优先级 运算符 结合性
1 () [] 从左到右
2 ! +(正) -(负) ++ – 从右到左
3
    / %
从左到右
4 +(加) -(减) 从左到右
5 << >> >>> 从左到右
6 < <= > >= instanceof 从左到右
7 == != 从左到右
8 &(按位与) 从左到右
9 ^ 从左到右
10 从左到右
11 && 从左到右
12 || 从左到右
13 ?: 从右到左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右到左

输入、输出专题

input & output –> I/O(标准IO,文件IO)

1、格式化输入输出函数:scanf,printf

int printf(const char *format,...)
format:"% [修饰符] 格式字符"

2、字符输入输出函数:getchar,putchar

3、字符串输入输出函数:gets(!),puts

你可能感兴趣的:(C语言学习笔记)