Hello World!—— 属于我们的第一个C语言程序

简介: C语言最早是由贝尔实验室的Dennis Ritchie为了UNIX的辅助开发而编写的,它是在B语言的基础上开发出来的。尽管C语言不是专门针对UNIX操作系统或机器编写的,但它与UNIX系统的关系十分紧密。由于它的硬件无关性和可移植性,使C语言逐渐成为世界上使用最广泛计算机语言。为了进一步规范C语言的硬件无关性,1987年,美国国家标准协会(ANSI)根据C语言问世以来各种版本对C语言的发展和扩充,制定了新的标准,称为ANSI C。ANSI C语言比原来的标准C语言有了很大的发展。目前流行的C语言编译系统都是以它为基础的。

@TOC

C语言的前世今生

屏幕截图 2023-11-28 111910.png

C语言的发展史

C语言最早是由贝尔实验室的Dennis Ritchie为了UNIX的辅助开发而编写的,它是在B语言的基础上开发出来的。尽管C语言不是专门针对UNIX操作系统或机器编写的,但它与UNIX系统的关系十分紧密。由于它的硬件无关性和可移植性,使C语言逐渐成为世界上使用最广泛计算机语言。
为了进一步规范C语言的硬件无关性,1987年,美国国家标准协会(ANSI)根据C语言问世以来各种版本对C语言的发展和扩充,制定了新的标准,称为ANSI C。ANSI C语言比原来的标准C语言有了很大的发展。目前流行的C语言编译系统都是以它为基础的。

C语言之父——丹尼斯·麦卡利斯泰尔·里奇

C语言之父——丹尼斯·麦卡利斯泰尔·里奇

贝尔实验室特别人员奖、美国计算机协会(ACM)的图灵奖、汉明勋章、计算机先驱奖、计算机历史博物馆研究员、哈罗德 · 潘德奖……这些成就全都出自一人,那就是编程界无人能超越的传奇人物也是C语言的创造者——丹尼斯·里奇。



打印Hello world!

接下来就来敲出我们的启蒙代码!

#include<stdio.h>
int main()
{
   
   
    printf("Hello world!\n");
    return 0;
}

下面是一个C语言程序从写入到输出所经历的大概过程,由于计算机只认识0和1这样的二进制数字,所以编译器的作用就是通过预处理及编译把我们用高级语言(比如C)写的代码所表达的意思翻译成二进制的形式,再通过链接将C语言标准库中的操作生成可执行文件,最后交给控制台输出即可。

QQ截图20231128174802.png


我们了解了代码是如何变成一个程序去运行的,然后再来详细分析一下着段代码各个语句的作用!


#include<stdio.h>

include

是英文包含、包括的意思,就是告诉编译器,接下来写的代码包含了< >里面的东西。< >里面一般是程序运行所需的头文件。

stdio.h
拆分 std+i+o+.h
std标准的的英文缩写,iinput输入的意思,ooutput输出的意思,.h表示头文件。

现在连起来看,就是这个代码程序包含了一个的头文件。头文件里面有一系列的标准库函数。库函数是为了不再重复实现常见的代码,提供我们的开发效率,C语言标准规定的一组函数库,由多个这样的函数组成了一个函数库,被称为标准库,这些函数也被称为库函数。因此,库函数的使用,要包含对应的头文件。

include这条代码我们日后使用的频率非常高,所以基本上是必写的代码。

QQ截图20231128232746.png


int main()

int 是整型的意思。
表示这是一个整型函数,返回时需要返回整型,所以需要下文的return 0配合。一般我们返回0,表示正常返回,非0也行,但是返回非0表示异常返回。
main()是一个主函数。
每个C语言程序不管有多少行代码,都是从main函数开始执行的,main函数是程序执行的入口,被称为主函数。int main()表示主函数执行结束的时候返回一个整型类型的值,用return来实现。

printf

是标准I/O库中的函数,它的功能是在标准输出设备上进行信息的打印。这样就可以使用printf将Hello world 打印到屏幕上了。

屏幕截图 2023-11-29 083004.png

return

  1. 在main函数中,return 0返回值零的含义可以理解为是,程序从头到为执行正常,最后返回一个值0,告诉编译器运行正确。
  2. 在其他需要返回值函数中,我们需要拿到这个结果,那么就可以用return返回这个值。(比如计算两个数的和的函数,需要返回两个数的和),要具体问题具体分析,再决定返回值。

QQ截图20231129090051.png

最后

在初学C语言时,面对C语言中如此多的关键字、操作符、库函数感到非常头大。
利用cplusplus网站或MSDN等工具可以帮助我们快速了解它们。

学会了第一个C语言程序,也将意味着我们正式开启了学习编程之路,加油吧!

只有经历过地狱般的磨练,才能炼出创造天堂的力量;只有流过血的手指,才能弹奏出世间的绝唱。

目录
相关文章
|
2月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
5月前
|
前端开发 C语言
C语言06-HelloWorld执行流程分析
C语言06-HelloWorld执行流程分析
C语言06-HelloWorld执行流程分析
|
4月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
112 1
|
4月前
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
147 1
|
4月前
|
编译器 C语言 计算机视觉
C语言实现的图像处理程序
C语言实现的图像处理程序
195 0
|
23天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
44 5
|
23天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
57 4
|
22天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
51 1
|
23天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
35 2
|
23天前
|
程序员 C语言
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门。本文深入探讨了指针的基本概念、声明方式、动态内存分配、函数参数传递、指针运算及与数组和函数的关系,强调了正确使用指针的重要性,并鼓励读者通过实践掌握这一关键技能。
35 1