C语言入门(适合小白)

简介: C语言入门(适合小白)

了解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”。


20210617220759375.png

相关文章
|
2月前
|
C语言
王桂林C语言从放弃到入门课程
课程目标16天,每天6节课,每节40分钟课堂实录,带你征服C语言,让所有学过和没有学过C语言的人,或是正准备学习C语言的人,找到学习C语言的不二法门。适用人群所有学过和没有学过C语言的人,或是正准备学习C语言的人!
26 2
王桂林C语言从放弃到入门课程
|
2月前
|
存储 编译器 C语言
初识C语言——详细入门(系统性学习day4)
初识C语言——详细入门(系统性学习day4)
|
2月前
|
存储 自然语言处理 编译器
C语言从入门到实战——编译和链接
在C语言中,编译和链接是将源代码转换为可执行文件的两个主要步骤。 编译过程包括以下步骤: 1. 预处理:将源代码中的预处理指令(如`#include`和`#define`)替换为实际的代码。 2. 编译:将预处理后的代码转换为汇编语言。 3. 汇编:将汇编语言转换为机器码指令。 链接过程包括以下步骤: 1. 目标文件生成:将每个源文件编译后生成的目标文件(`.o`或`.obj`)进行合并,生成一个总的目标文件。 2. 符号解析:查找并解析目标文件中的所有符号(例如全局变量和函数名),以确保每个符号都有一个唯一的地址。 3. 地址重定位:根据符号表中符号的地址信息,将目标文件中的所有地址引用
43 0
|
2月前
|
编译器 程序员 C语言
C语言从入门到实战——动态内存管理
在C语言中,动态内存管理是指程序运行时,通过调用特定的函数动态地分配和释放内存空间。动态内存管理允许程序在运行时根据实际需要来分配内存,避免了静态内存分配在编译时就确定固定大小的限制。
46 0
|
2月前
|
编译器 Linux PHP
C语言从入门到实战——预处理详解
C语言预处理是C语言编译过程的一个阶段,它在编译之前对源代码进行一系列的处理操作,包括宏替换、文件包含、条件编译等,最终生成经过预处理的代码,然后再进行编译。
48 0
|
2月前
|
存储 缓存 C语言
C语言从入门到实战——文件操作
C语言中的文件操作是通过使用文件指针来实现的。可以使用标准库中的函数来打开、读取、写入和关闭文件。
57 0
|
20天前
|
存储 自然语言处理 编译器
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(3)
|
17天前
|
编译器 C语言
函数深入解析(C语言基础入门)
函数深入解析(C语言基础入门)
|
17天前
|
C语言
数组深入剖析(C语言基础入门)
数组深入剖析(C语言基础入门)
|
20天前
|
算法 C语言 芯片
振南技术干货集:振南当年入门C语言和单片机的那些事儿(1)
振南技术干货集:振南当年入门C语言和单片机的那些事儿(1)