了解C文化
这里简单说一下,具体的可以自己深入了解
C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。
在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。
UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。
易于学习。
结构化语言。
它产生高效率的程序。
它可以处理底层的活动。
它可以在多种计算机平台上编译。
编程语言的起源源自于内存的构造:
内存是基于晶体管—>类似于我们的家中的日光灯
两种行为 开灯=>1 关灯=>0
即第一代编程语言:二进制 机器码
然后基于第一代编程语言诞生了第二代 即汇编语言
基于机器码新增了一些指令便于人来识别 然后产生了 : c 语言 c++ 称之为第三代
然后第四代编程语言 java php c# JavaScript R go 等 这些编程语言都是基于 c/c++所诞生的 并且我们会发现 c/c++启到了一个承上启下的作用 向下可以往底层开发 向上可以做上层的应用 并且我们以后在工作中学习的编程语言也不是一门两门,所以当你把 c/c++搞定之后其 他的语言及完全自己学可以搞定了,并且决定了你以后发展的宽度和广度,以及就业的面 积!!!
学习 C/C++后的就业方向
后台/服务器 【后台开发】 编程基本功扎实,掌握 C/C++开发语言、常用算法和数据结构; 熟悉 TCP/UDP 网络协议及相关编程、进程间通讯编程; 了解 Python、Shell、Perl 等脚本语言; 了解 MYSQL 及 SQL 语言、编程,了解 NoSQL, key-value 存储原理; 全面、扎实的软件知识结构,掌握操作系统、软件工程、设计模式、数据结构、数据库 系统、网络安全等专业知识; 了解分布式系统设计与开发、负载均衡技术,系统容灾设计,高可用系统等知识。
桌面客户端 【PC 客户端开发】 热爱编程,基础扎实,理解算法和数据结构相关知识; 熟悉 windows 操作系统的内存管理、文件系统、进程线程调度; 熟悉 MFC/Qt/windows 界面实现机制,熟练使用 VS,精通 C/C++,熟练使用 STL,以 及 Windows 下网络编程经验;
熟练掌握 Windows 客户端开发、调试,有 Windows 应用软件开发经验优先; 对于创新及解决具有挑战性的问题充满激情,具有良好的算法基础及系统分析能力
图形学/游戏/VR/AR 【游戏客户端开发】 计算机科学/工程相关专业,热爱编程,基础扎实,理解算法、数据结构、软件设计相 关知识; 至少掌握一种游戏开发常用的编程语言,具 C++/C# 编程经验优先; 具游戏引擎(如 Unity、Unreal)使用经验者优先; 了解某方面的游戏客户端技术(如图形、音频、动画、物理、人工智能、网络同步)者 优先考虑; 对于创新及解决具有挑战性的问题充满激情,有较强的学习能力、分析及解决问题能力, 具备良好的团队合作意识; 具阅读英文技术文档能力; 热爱游戏。
测试开发 【测试开发】 一至两年的 C/C++/Python 或其他计算机语言的编程经验; 具备撰写测试计划、测试用例、以及实现性能和安全等测试的能力; 具备实现自动化系统的能力; 具备定位调查产品缺陷能力、以及代码级别调试缺陷的能力; 工作主动积极,有责任心,具有良好的团队合作精神。
网络安全/逆向 【安全技术】 热爱互联网,对操作系统和网络安全有狂热的追求,专业不限; 熟悉漏洞挖掘、网络安全攻防技术,了解常见黑客攻击手法; 掌握基本开发能力,熟练使用 C/C++ 语言; 对数据库、操作系统、网络原理有较好掌握; 具有软件逆向,网络安全攻防或安全系统开发经验者优先。
嵌入式/物联网 【嵌入式应用开发】 有良好的编程基础,熟练掌握 C/C++ 语言; 掌握操作系统、数据结构等软件开发必备知识; 具备较强的沟通理解能力及良好的团队合作意识; 有 Linux/Android 系统平台的开发经验者优先。
音视频/流媒体/SDK 【音视频编解码】 计算机、信号处理、数学、信息类及相关专业和方向; 视频编解码基础扎实,熟常用的 HEVC 或 H264,有较好的数字信号处理基础; 掌握 C/C++,代码能力强, 熟悉一种汇编语言尤佳; 较强的英文文献阅读能力; 学习能力强,具有团队协作精神,有较强的抗压能力。
计算机视觉/机器学习 【计算机视觉研究】 计算机、应用数学、模式识别、人工智能、自控、统计学、运筹学、生物信息、物理学
/量子计算、神经科学、社会学/心理学等专业,图像处理、模式识别、机器学习相关研究方 向;熟练掌握计算机视觉和图像处理相关的基本算法及应用; 较强的算法实现能力,熟练掌握 C/C++ 编程,熟悉 Shell/Python/Matlab 至少一种编 程语言; 在计算机视觉、模式识别等学术会议或者期刊上发表论文、相关国际比赛获奖、及有相 关专利者优先。
why use c
C 语言最初是用于系统开发工作,特别是组成操作系统的程序。由于 C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 C 语言作为系统开发语言。
C能做些什么,举栗子
操作系统
语言编译器
汇编器
文本编辑器
网络驱动器
打印机
程序
数据库
语言解释器
实体工具
等等……
关于 C
C 语言是为了编写 UNIX 操作系统而被发明的。
C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。
C 语言标准是于 1988 年由美国国家标准协会(ANSI,全称 American National Standard Institute)制定的。
截至 1973 年,UNIX 操作系统完全使用 C 语言编写。
目前,C 语言是最广泛使用的系统程序设计语言。
大多数先进的软件都是使用 C 语言实现的。
当今最流行的 Linux 操作系统和 RDBMS(Relational Database Management System:关系数据库管理系统) MySQL 都是使用 C 语言编写的。
这里放一个菜鸟的在线编辑器
好,仪式感,Hello World
准备好了吗,<( ̄︶ ̄)↗[GO!]
#include <stdio.h> int main() { /* 我的第一个 C 程序 */ printf("Hello, World! \n"); return 0; }
所有的 C 语言程序都需要包含 main() 函数,main函数是主函数, 代码从 main() 函数开始执行。
/* … */ 用于注释说明,这里的语句不会被执行,主要用于更好的让自己或别人理解你的代码,维护起来也相对容易,规范的书写注释是很好的编程习惯。
printf() 用于格式化输出到屏幕。printf() 函数在 “stdio.h” 头文件中声明。
stdio.h 是一个头文件 (标准输入输出头文件) , #include 是一个预处理命令,用来引入头文件。 当编译器遇到 printf() 函数时,如果没有找到 stdio.h 头文件,会发生编译错误。
return 0; 函数的返回值,可以用于返回值,也可以用于表示退出程序。
编译 & 执行 C 程序
打开一个文本编辑器,添加上述代码。
保存文件为 hello.c。
进入到保存文件所在的目录在盘符那输入cmd进入命令行窗口。
键入 gcc hello.c,输入回车,编译代码。
如果代码中没有错误,命令提示符会跳到下一行,并生成 a.exe可执行文件。
现在,键入 a.exe来执行程序。
您可以看到屏幕上显示 “Hello World”。