C语言大总结
C语言大总结
一。
C语言基本常识
1、语言由函数组成
2、main是程序入口
3、C语言中不能出现中文或中文字符 (凝视和字符串除外)
keyword : C语言提供表示特殊含义的单词
特点 : 1、 所有小写 2、在Xcode中是紫褐色
标识符 : 程序猿自己在代码中为某些东西起的名字
规则 : 1、字母、数字、下划线组成
2、严格区分大写和小写
3、不能以数字开头
4、不能与keyword重名
规范:驼峰标识
凝视:对代码的解释说明,它是程序猿看的,它不參与编译
单行凝视 和 多行凝视
多行凝视能够嵌套单行凝视,但多行凝视不能嵌套多行凝视
数据:存储时长:静态数据:存储在硬盘上的数据
动态数据:内存中的数据
常量:不能够改变的量
变量:能够改变的量
二。数据类型
1、基本数据类型
int 4字节 %d %i
float 4字节 %f
double 8字节 %lf
char 1字节 %c
枚举:枚举的本质是整型(enum)
场合:当某个东西仅仅有几个固定取值的时候
特点:先定义枚举类型,依据枚举类型定义枚举变量
2、构造类型
数组:用来从年初同样数据类型的多个数据的集合
定义:数据类型 数组名称 [元素个数]
遍历:把全部的元素都拿出来看一下(循环)
结构体:多个数据放在一起能够表示特定的含义组成结构体
特点:先定义结构体类型。然后定义结构体变量
结构体与函数:如同基本数据类型与函数的关系
三、指针:指针就是地址
指针变量:用来存放地址的变量
1、指针仅仅有初始化了才干够訪问它所指向的存储空间
2、假设一个指针没有初始化,它里面是垃圾值,称为野指针。
3、不能直接赋值一个整形数
基本数据类型的指针: 指向基本数据类型的指针
格式:数据类型 * 指针变量名称;
结构体的指针: 指向结构体类型的指针
格式 结构体类型 * 指针变量名称。
訪问其所指向的结构体成员方式
(*指针变量名称).成员名称
指针变量名称->成员名称
数组指针: 指向数组的指针
格式: 所指向的数组的数据类型 (*指针变量名称)[所指向的数组的元素个数]
这样的指针与二位数组名是等价的
函数指针: 指向函数的指针
格式: 所指向函数的返回值类型(*指针变量名称)[所指向函数的形參列表]
通过函数指针调用函数
(*指针变量名称)(实參列表)
指针变量名称(实參列表)
四、运算符
1、算数运算符
+ - * / %
2、赋值运算符
= += -= *= /= %=
3、自增自减运算符
++a , a++
--a , a--
4、sizeof运算符:用来计算变量、常量、数据类型所占用存储空间的字节数
sizeof(常量) sizeof常量
sizeof(变量) sizeof变量
sizeof(数据类型)
5、逗号运算符
1、运算顺序是从左到右
2、逗号表达式的运算结构为最后一个表达式的值
6、关系运算符
== != > < >= <=
7、逻辑运算符
&& || !
8、三目运算符
条件表达式 ? 结果1 : 结果2
优先级:一般优先级越高越先进行计算
结合方向:当优先级同样时,计算方向(从左到右,从右往左)
五、 流程控制:控制程序的运行流程
顺序结构:依照从上到下的顺序运行
分支结构:相当于岔路口。当条件满足的时候就运行某段代码
if 语句:
1.if 必须以if 开头
2.if 能够有多个else if
3.if 语句最多有一个else
4.if 语句中对多仅仅有一个代码块会被运行
5.假设有 else 那么必定有一个代码块会被运行
switch 语句: 当变量与否个常量相等时运行这个常量所相应代码块中的语句
格式: switch(变量){
case 常量:
…...
break;
case 常量:
…...
break;
default:
……
break;
}
注意点:1、仅支持整型数
2、case 后面仅仅能是常量或常量表达式
3、case 后面的常量的值不能同样
4、结束条件 遇到break 或 "}"
循环结构:当条件满足就会一直运行循环体中的代码。直到条件不再满足为止
while 语句:当条件满足的时候就运行while后面大括号里的语句
do while:循环体中代码至少运行一次
for语句:
for (初始化表达式;条件表达式;循环后操作表达式)
{
语句;
…..
}
break:1、在switch语句中用来结束switch语句
2、用在循环结构中。用结束当前的循环语句
continue
3、仅仅能用在循环结构中,跳过本次循环体重continue后面的语句,进入下一个条件推断
六、函数 : 完毕特定功能的代码段
定义格式:返回值类型 函数名称 (形參列表)
{
语句;
….
}
函数声明:告诉编译器该函数已经存在了
函数的声明能够有多个。定义仅仅能有一个
函数參数:
1、基本数据类型作为函数參数传递是值传递
2、数组作为函数參数传递是地址传递
3、指针作为函数參数传递是地址传递
4、结构体作为函数參数传递与基本数据类型一致
函数返回值:函数完毕功能后要返回给主调函数中的数据
1、返回值的类型必须与返回值的类型一致
2、一个函数仅仅能有一个返回值
return 作用:返回值给主调函数
结束函数
七、预处理指令:在编译之前须要进行解析处理的指令
1、宏定义:
不带參数的宏定义:在编译之前,使用宏名后面值,替换代码中全部出现宏名标识的地方
带參数的宏定义:把參数带入宏名表达式中,然后替换宏调用的地方
2、条件编译:在编译的时候。当条件满足时就编译某段代码
#if开头 #elif #else #endif结尾
#ifdef #endif
#ifndef #endif
3、文件包括:
#include 拷贝所包括的文件内容到#include指令所在地方
#include " " 包括自己的文件
#include < > 包括系统的头文件
进制:
十进制
二进制 0b 或0B
八进制 0 %o 或 %0
十六进制 0x 或0X %x 或 %X
位运算
& | ^ ~ >> <<
C语言大总结的更多相关文章
- BMP图像直方图均衡算法(C语言大作业)
万丈高楼平地起 C语言大作业 一.学习笔记篇 1.学习MarkDown MarkDown注重写作本身,而非花俏的界面 编辑器:vscode 插件:Markdown,Markdown Preview 2 ...
- Atitit.dart语言的特性 编译时js语言大总结
Atitit.dart语言的特性 编译时js语言大总结 1. 原型环境1 1.1. Dart可以编译js3 2. 第二个期待的理由是Dart的语言特性,没有什么特别特性好像,类似java c#一小时 ...
- R语言︱大数据集下运行内存管理
在实操时出现以下的问题: Error: cannot allocate vector of size 2.9GB 大神指导(http://bbs.pinggu.org/thread-3682816-1 ...
- OC语言大总结(上)
根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强 未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 第一节类于对象 类与对象http:// ...
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- Python、Lua和Ruby比较——脚本语言大P.K.
译者按:Python.lua和ruby在C/C++是日渐式微的情况下,在java/.net的围歼中努力抗争的三个当红小生.在Tom Gutschmidt的著作<Game Programmng w ...
- Go语言大神亲述:历七劫方可成为程序员!
“历劫1”:你坚信你可以用Go来做面向对象编程? 在经历了一次Go应用之旅之后,你可能就会开始思考:“怎么样才能让这种语言更像面向对象的编程语言?”因为你已经习惯了这种编程,你想要制作健壮的代码.想要 ...
- 各种Lisp系语言大检阅
主要特色: CommonLISP : lisp系集大成者, 工业化强度的大型语言. 拥有理论上最高的表达力, 非常复杂, 学习难度极大. 喜欢的人捧到天上, 觉得它是一切语言的终点, 不喜欢的人恶心死 ...
- 【C】C语言大作业——学生学籍管理系统
文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...
随机推荐
- echarts断点连线问题 终级
/** * * 测试关系图 graph type* */var coors1 = [['1', 0],['2', 182],['5', 290],['6', 330],['7', 310],['10' ...
- Django Model笔记
常用数据类型 # https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-types BooleanField:布尔类型true/ ...
- CCF试题:高速公路(Targin)
问题描述 某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路. 现在,大臣们帮国王拟了一个修高速公路的 ...
- Next Permutation&&Permutation Sequence
Next Permutation Implement next permutation, which rearranges numbers into the lexicographically nex ...
- 前端读者 | 前端面试基础手册(HTML+CSS)
本文来自@羯瑞:希望前端面试基础手册能帮助要找工作的前端小伙伴~~ HTML 前端需要注意哪些SEO? 合理的title.description.keywords:搜索对着三项的权重逐个减小,titl ...
- Ubuntu上开启Apache Rewrite功能的方法
Ubuntu上开启Apache Rewrite功能的方法 本文介绍ubuntn系统中开启apache的urlrewrite功能的方法. 在Windows上开启Apache的urlRewrite非常简单 ...
- 用谷歌浏览器Chrome浏览jQuery Mobile页面需要配置Tomcat服务器
在浏览jQuery Mobile 页面中,除了 Chrome浏览器出错外,其他的浏览器都ok: 这里,是因为需要单独配置 Tomcat 服务: 1.先配置java jdk: 2.下载,安装,配置,To ...
- 【前端必备】三、JS篇
1.运算符与隐式类型转换 类型判断: typeof constructor.toString().indexOf() NaN是numberArray.Date.Null都是Objectfunction ...
- 动若脱兔:深入浅出angr--初步理解符号执行以及angr架构
一:概论 angr作为符号执行的工具,集成了过去的许多分析方式,它不仅能进行动态符号执行,而且还能进行很多静态分析,他在分析二进制程序中能发挥很大的作用,下面为一些应用: 1:利用符号执行探究执行路径 ...
- Flask实战第37天:服务器权限验证
完成服务器权限验证之前,我们先如下页面先补上 帖子管理 {% extends 'cms/cms_base.html' %} {% block title %} 帖子管理-CMS管理系统 {% endb ...