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语言大总结的更多相关文章

  1. BMP图像直方图均衡算法(C语言大作业)

    万丈高楼平地起 C语言大作业 一.学习笔记篇 1.学习MarkDown MarkDown注重写作本身,而非花俏的界面 编辑器:vscode 插件:Markdown,Markdown Preview 2 ...

  2. Atitit.dart语言的特性  编译时js语言大总结

    Atitit.dart语言的特性  编译时js语言大总结 1. 原型环境1 1.1. Dart可以编译js3 2. 第二个期待的理由是Dart的语言特性,没有什么特别特性好像,类似java c#一小时 ...

  3. R语言︱大数据集下运行内存管理

    在实操时出现以下的问题: Error: cannot allocate vector of size 2.9GB 大神指导(http://bbs.pinggu.org/thread-3682816-1 ...

  4. OC语言大总结(上)

    根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强  未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 第一节类于对象   类与对象http:// ...

  5. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

  6. Python、Lua和Ruby比较——脚本语言大P.K.

    译者按:Python.lua和ruby在C/C++是日渐式微的情况下,在java/.net的围歼中努力抗争的三个当红小生.在Tom Gutschmidt的著作<Game Programmng w ...

  7. Go语言大神亲述:历七劫方可成为程序员!

    “历劫1”:你坚信你可以用Go来做面向对象编程? 在经历了一次Go应用之旅之后,你可能就会开始思考:“怎么样才能让这种语言更像面向对象的编程语言?”因为你已经习惯了这种编程,你想要制作健壮的代码.想要 ...

  8. 各种Lisp系语言大检阅

    主要特色: CommonLISP : lisp系集大成者, 工业化强度的大型语言. 拥有理论上最高的表达力, 非常复杂, 学习难度极大. 喜欢的人捧到天上, 觉得它是一切语言的终点, 不喜欢的人恶心死 ...

  9. 【C】C语言大作业——学生学籍管理系统

    文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...

随机推荐

  1. linux命令(25):ln命令

    命令格式: ln [参数][源文件或目录][目标文件或目录] 必要参数: -b 删除,覆盖以前建立的链接 -d 允许超级用户制作目录的硬链接 -f 强制执行 -i 交互模式,文件存在则提示用户是否覆盖 ...

  2. 爬虫 requests模块高级用法

    一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内 ...

  3. beego学习笔记(1)

    公司准备开发一个针对塔吊行业的APP. 后台采用微服务,docker容器部署. 准备采用go进行微服务的开发. 采用beego进行restful API的开发. 第一步,访问beego的官方网站: h ...

  4. matlab基本指令

    基本命令 close all //关闭所有figure 命令打开的窗口,在命令窗口输入 clear all //清除之前运行程序所存下的所有变量 size(mat) a = [1 2 3 ; 4 5 ...

  5. gitlab和github的区别

          先说一下相同点,二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储.分享.发布和合作开发项目的中心化云存 ...

  6. AIOps-一位研发工程师的学习笔记

    https://blog.csdn.net/wxm6614/article/details/80457568

  7. mysql 主从 同步原理及配置

    一.在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来 ...

  8. windows10 自带的OpenSSH Client(Beta)

    我不知道其他版本有没有 ,我是windows10 专业版,版本1709,OS内部版本16288.1 安装过程: 1.我的电脑上面的卸载或更改程序 2.管理可选功能 3.添加功能 4.重启电脑,搞定 O ...

  9. 转:攻击JavaWeb应用[1]-javaEE基础

    http://www.cnblogs.com/oh3o/p/3224562.html JSP: 全名为java server page,其根本是一个简化的Servlet. Servlet:Servle ...

  10. 今天找到了关于用深度学习识别fre2013的代码

    http://blog.csdn.net/walilk/article/details/58709611 http://blog.csdn.net/zwx2445205419/article/deta ...