函数参数传递
{{ interaction.likeNum == 0 ? (pageType === 'video' ? '抢首赞' : '点赞') : formatNumber(interaction.likeNum) }}
{{ interaction.collectionNum == 0 ? '收藏' : formatNumber(interaction.collectionNum) }}
{{ interaction.discussNum == 0 ? (pageType === 'video' ? '抢沙发' : '讨论') : formatNumber(interaction.discussNum) }}
分享
适合人群
1、自学发现学习有很多坑无法理解的 2、对编程感兴趣不知道怎么入门的 3、想通过努力成为编程大牛的
你将会学到
主要讲解C语言最底层的知识点,带你从小白走进C语编程的神秘世界。
课程简介
C语言 很强大
优点
十分灵活, 强大 短小, 精悍 语言简洁 共有32个关键字, 9种控制语句, 书写形式自由
缺点
太灵活, 编程自由度大, 入门有一定困难 运算符和运算优先级过多 不适合写大的东西
C语言标准
K&R C
1978年,丹尼斯?里奇(Dennis Ritchie)和布莱恩?柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。 书中介绍的C语言标准也被C语言程式设计师称作“K&R C” 第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色: 结构(struct)类型 长整数(long int)类型 无符号整数(unsigned int)类型 把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。 即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最低标准要求,许多老旧的编译仍然运行K&R C的标准。
ANSI C, ISO C
C 的第一个标准是由ANSI发布的。 虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了, 但名称ANSI C(而不是 ISO C)仍被广泛使用。 ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。
C89,C90
1983年,美国国家标准协会组成了一个委员会,X3J11,为了创立 C 的一套标准。 经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989 "Programming Language C"正式生效。 这个版本的语言经常被称作"ANSI C",或有时称为"C89"(为了区别C99)。 在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC 9899:1990。 这个版本有时候称为C90或者ISO C。 因此,C89和C90通常指同一种语言。 传统C语言到ANSI/ISO标准C语言的改进包括: 增加了真正的标准库 新的预处理命令与特性 函数原型允许在函数申明中指定参数类型 一些新的关键字,包括 const、volatile 与 signed 宽字符、宽字符串与字节多字符 对约定规则、声明和类型检查的许多小改动与澄清
C99
2000年3月,ANSI 采纳了 ISO/IEC 9899:1999 标准。这个标准通常指C99。 C99新增了一些特性,如: 支持不定长的数组,即数组长度可以在运行时决定。 变量声明不必放在语句块的开头,for 语句提倡写成 for(int i=0;i<100;++i) 的形式,即i 只在 for 语句块内部有效。 初始化结构的时候允许对特定的元素赋值。 允许编译器化简非常数的表达式。 取消了函数返回类型默认为 int 的规定。 但是各个公司对C99的支持所表现出来的兴趣不同。 当GCC和其它一些商业编译器支持C99的大部分特性的时候,微软和Borland却似乎对此不感兴趣,他们把更多的精力放在了C++上。
C11
在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准。 这个标准通常即C11,它是C程序语言的**标准。
第一个程序
怎样开始写一个程序?
1. 目标 要明确我们书写这个程序索要达到的目标, 或者达到的效果, 深入思考我们需要完成什么. 2. 设计 对我们的程序进行一个设计, 思路上或者想法上, 代码如何书写上, 必要时可配上伪代码. 3. 开始编写 设计好了之后, 就开始编写吧! 4. 测试 编写完成, 进行程序的测试, 比如黑盒测试, 白盒测试, 单元测试....等等等等 5. 发行 测试完成无问题, 将程序发行出去. 6. BUG修改 发行了之后运行的人多了, 肯定会有BUG, 我们需要将BUG进行修改. 7. 迭代更新 当运行和使用的人多了, 时间久了之后, 肯定会有新的需求, 那么, 我们就需要进行迭代更新.
注意事项
C语言中, 所有的标点符号(不包括使用英文双引号, 即"..."包围的字符串, 但是包括其中的占位符和转义字符)都是半角符号.
{ ... } 代表的是函数体.
在函数体中间的内容, 每一条都是一条语句.
C语言中, 语句一般都以英文分号";"作为语句的结束.
当然有一些是不需要的, 比如 for 循环语句.
一个C语言程序, 必须有且仅有1个main函数(入口函数).
手动编译
环境: Windows系统, 需要安装Visual Studio, 并打开我们Visual Studio提供的"开发人员工具"命令行. 当然, 你也可以通过设置环境变量的方式来达到我们的目的. 我们的目的只有一个, 就是使用 "cl.exe".
我们首先写一个 ILoveHades.c
通过我们的命令行命令: cl ILoveHades.c
编译完成会产生 ILoveHades.obj
链接完成会产生 ILoveHades.exe
注意, 我们的
.obj文件是不能执行
的.我们看一下我们的执行结果:
是不是很有成就感!!!
IDE的使用
IDE为我们提供了很多便利. 比如: 自动完成列表 函数参数提示 一键编译运行 智能感知提示 自动补全 工程文件智能管理 ....
合理运用IDE能够大幅度提升我们的开发效率和质量.
代码讲解
.c 是我们的源代码文件, 我们称之为"源文件" .h 使我们的头文件, 用来做归纳总结的, 相当于对应源文件的目录, 包含了各种函数声明.
#include 是预编译指令, 是在编译之前进行的步骤
main函数, 入口函数, 有且仅有1个.
如果没有main函数, 编译不会报错, 但是在链接的时候, 会出现link1561错误.
由此我们知道, 编译, 就是进行语法检查, 检查通过后, 就会编译生成obj文件. 链接, 对我们的可执行文件进行拼装, 会检测各种错误.
printf格式化
需要注意
转义字符
的使用.需要注意
占位符
的使用, 使用占位符请务必保持占位符和给定的参数的类型一致
.
展开更多
{{tips.text}}
{{ noteHeaderTitle }}
笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
公开笔记对他人可见,有机会被管理员评为“优质笔记”
{{ noteEditor.content.length }}/2000
公开笔记
保存提问
讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。
记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交课程大纲
自动连播
![C/C++编程视频课程](https://s2.51cto.com/images/202011/11/1ca670ef1630bc33324f08d77a05a437.jpg?x-oss-process=image)
C/C++编程视频课程
51450人学习
杨波
4.3
免费
![Windows核心编程系列视频课程(NT+SDK+MFC+API)](https://s2.51cto.com/images/201801/31/06e7456e4f30e724f2c8616d8bd16819.jpg?x-oss-process=image)
Windows核心编程系列视频课程(NT+SDK+MFC+API)
21145人学习
杨波
4.8
¥1980.00
![C/C++黑客编程入门视频课程](https://s2.51cto.com/images/201709/27/c30896e240fd92e7cc86e0d5692b03ca.png?x-oss-process=image)
C/C++黑客编程入门视频课程
10411人学习
杨波
4.9
¥9.00
![反汇编初级视频课程](https://s2.51cto.com/images/201806/12/d74b9d511e0db80590a2b623176f85c3.jpg?x-oss-process=image)
反汇编初级视频课程
6681人学习
杨波
4.9
¥99.00
![C语言项目开发系列视频课程](https://s2.51cto.com/images/201801/10/a59babe193003ca93d9d0799ddd67a40.jpg?x-oss-process=image)
C语言项目开发系列视频课程
5522人学习
杨波
5.0
¥499.00
![Window底层核心之MFC入门应用视频课程](https://s2.51cto.com/images/201709/26/ca4cb2f32eb03e9c189791ba219725d7.jpg?x-oss-process=image)
Window底层核心之MFC入门应用视频课程
5426人学习
杨波
5.0
¥29.00
![C语言提升视频课程](https://s2.51cto.com/images/201804/11/2b0d33c0ab820c6cab3869f21b5e5900.jpg?x-oss-process=image)
C语言提升视频课程
5047人学习
杨波
5.0
¥198.00
![C/C++计算机科学及编程导论视频课程](https://s2.51cto.com/images/201709/25/5880991f1bc2931b1e0aeb44acd241ef.jpg?x-oss-process=image)
C/C++计算机科学及编程导论视频课程
2207人学习
杨波
5.0
¥98.00