Git Product home page Git Product logo

c-crashcourse's Introduction

介绍

帮助 C 语言初学者的从入门到“精通”




声明

本仓库内容除了少部分引用书籍和技术文档的部分内容(均在文中末尾指出),其余都是我的原创。在您引用本仓库内容或者对内容进行修改演绎时,请署名并以相同方式共享,谢谢。

转载文章请在开头明显处标明该页面地址。


C 语言初阶和进阶的内容来自我的博客

C 语言初阶

这一部分是我对 C 语言的基础知识部分的总结。

  1. 数据类型和变量
  2. 数组
  3. 分支和循环
  4. 函数
  5. 指针
  6. 操作符

C 语言进阶

  1. 5分钟看懂什么是 malloc
  2. C语言 文件 看这一篇就够了
  3. 一篇看懂 C语言常用 字符串函数,全网最全整理
  4. 什么 是 枚举 & 结构 & 联合,看这一篇就够了
  5. 什么是 全局变量 & 宏 & 大程序怎么写,看这一篇就够了
  6. 你不知道的几种素数判断方法,由浅入深,详解.
  7. 关于字符串你不知道的知识点
  8. 内存对齐
  9. 动态内存管理
  10. 字符串函数与内存函数
  11. 小端和整型存储
  12. 指针进阶
  13. 有关指针
  14. 浅谈 C 语言实现重载,多态和模板
  15. 这些关于数组的基础知识点你都知道吗
  16. 那些关于函数我们容易忽略的基础知识

C 陷阱与缺陷

这一部分内容来自 《C 陷阱与缺陷》,看完这本书我对我之前犯的错误一种醍醐灌顶的感觉。


C 经典练习题


练习 介绍 难度
1.常见字符串/内存函数实现 主要实现:strlen/strcpy/strcmp/strcat/strstr/memcpy/memmove ⭐⭐⭐
2.账簿计算 练习循环的使用(while, switch
3.计算利息 && 发牌 练习数组的使用
4.判定素数 练习函数的使用
5.猜数 && 手牌分类 练习全局变量的使用(拓展:如何取代全局变量) ⭐(猜数) ​ ⭐⭐⭐(手牌分类)
6.数组的最大元素和最小元素 了解指针
7.设计字符串读取函数 了解字符串的读取函数 getchar,字符串的特性(\0 结尾),EOF 的含义
8.显示一个月的提醒 了解字符串函数 strcpy/strcat/strcmp 的使用,并结合数组(二维)的知识 ⭐⭐
10.核对行星名字 了解(字符串)指针数组,main 函数的参数的含义 ⭐⭐
11.文本格式化 编写第一个多文件程序 ⭐⭐⭐
12.维护零件数据库 了解结构体及其使用 ⭐️⭐️⭐️
13.显示一个月的提醒 pro 了解动态内存分配函数 malloc ⭐⭐
14.维护零件数据库 pro 了解链表这种数据结构 ⭐️⭐️⭐️
15.栈实现 数组实现和链表实现 ⭐⭐
16.栈抽象数据类型 了解抽象数据类型(ADT) ⭐️⭐️⭐️
17.XOR 加密 && 查看内存单元 了解底层程序设计(位运算等) ⭐⭐
18.输入输出 了解 C 语言输入输出,文件操作(fopen/fclose,fread/fwrite等) ⭐⭐
19.错误处理 简单了解 signalsetjump/longjump 等函数的含义 ⭐⭐

用 C 实现的小游戏



C 课程设计作业



参考资料

以下排名不分先后,感谢这些优秀的作者,老师和网站。

免费获取 C 语言必读经典电子书

如果侵权,请联系我的邮箱 [email protected],我会第一时间删除

下面的书已经收集,并且本仓库还在持续增加电子书。如果对你有帮助,请点一个 star ~ ,让更多的人获得帮助。

  • 《C 语言程序设计——现代方法》
  • 《C Primer Plus》
  • 《C primer Plus 第五版课后习题答案》
  • 《C 陷阱与缺陷》
  • 《C 专家编程》
  • 《C 和 指针》
  • 《C 程序设计》(谭浩强)

获取方式:关注微信公众号【不会编程的程序圆】 ,后台回复 【cbook】 ,即可获得下载链接

c-crashcourse's People

Contributors

hairrrrr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

c-crashcourse's Issues

链表升序排列判断条件

C-CrashCourse/Coding/C_Crash_Course/01 Examples/17 指针的高级应用/02 维护零件数据库(链表)/inventory2.c

part* find_part(part* head, int number) {
	part* cur;

	// 链表是按照编号升序排序的
	for (cur = head->next; cur != NULL && cur->number > number;
		cur = cur->next)
		;
	
	if (cur == NULL)
		return NULL;

	if (cur->number == number)
		return cur;
}

这里应该是

for (cur = head->next; cur != NULL && cur->number < number;
		cur = cur->next)
		; // 小于number,否则cursor不会移动,找不到正确的节点

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.