C语言入门(1)——Hello World

1. 第一个C语言程序:Hello World

开始的第一个程序是一个最简单的程序,也就是最经典的Hello World程序,它的功能为打印出Hello World。程序的内容非常简单,也是C语言编写程序的基本结构框架。

1.示例
1.创建文件hello.c

vim hello.c

2.在hello.c下如下面代码,并保存。

#include <stdio.h>main() {printf("hello world\n");
}

3.编译hello.c

gcc hello.c

编译成功后,自动生成a.out文件。

4.运行a.out

./a.out

2. 说明

2.1 代码说明

1.#include <stdio.h>是一个文件,在C语言中称为头文件,里面有些函数提供给我们直接使用。

2.main()称为主函数,是C语言中默认的入口函数,在默认情况下运行程序时系统会先调用程序中的main函数。一般情况下,一个完整的程序中主函数是必须的。

C语言的函数表示方法与数学函数表示方法相似,例如:sin(x)

3.main后面的()表示函数的参数列表。这里使用了空的参数列表()。
4.main()后面的{}被称为函数体,定义函数的主要操作。
5.printf("hello world\n");是一条C语言执行命令,被称为语句,每条语句都以英文分号;结束。主要作用是在屏幕上打印hello world。其中printf()是打印函数,它定义在头文件stdio.h中。

语句相当于汉语中的一句话,只不过在汉语中是以句号结尾。

6.使用双引号"包裹的一段文字,被称为字符串,这里是在终端需要输出的内容。
7.\n是一个换行符,主要是在打印hello world后自动换行。

注: 在C语言中,除去必要的空格外,空行和空格往往不是必须的,它的作用是为了提高代码的可读性。例如写成这样也是可以的。

#include <stdio.h>
main(){printf("hello world\n");}

好的代码风格是缩进整齐,每个语句一行,适当留空行。

2.2 编译执行说明
在Hello World示例中,有两个文件hello.ca.outhello.c被称作源文件(或者源程序/代码),a.out被称为可执行文件(或者程序)。二者有如下区别:

上面使用gcc命令就是把人便于读写的源文件翻译成机器可以理解可执行文件,这个过程被称作编译,所以,gcc经常被称作编译器。

小历史
  • Hello World梗的由来
    1978年,在K&R(Brain Kernighan和Dennis Ritchie)合作撰写的C语言圣经《C程序设计语言》(The C Programming Language)中,使用了"hello,world"句式,作为开篇第一个程序。后来,各种编程语言各类教材都是以hello world做为开篇。

    汤普逊创造出了名为Bon的程式语言。汤普逊花了一个月的时间开发了全新的操作系统,UNiplexed Information and Computing System(UNICS),可执行于PDP-7机器之上,后来改称为UNIX。第一版的Unix就是基于B语言来开发的。Bon语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并与1971年共同发明了C语言。1973年Thompson和Ritchie用C语言重写了UNIX。安装于PDP-11的机器之上。他也是编程语言Go的共同作者。与丹尼斯·里奇同为1983年图灵奖得主。

  • C语言版本
    C语言主要分为几个版本:Old Style C、C89、C99和C11。其中,C89、C99和C11是标准语言规范,现在广泛使用的是C99。
    K&R的《C程序设计语言》(The C Programming Language)是第一本关于C语言著作,也是最经典的一本C语言著作,早期版本使用早期的Old Style C编写风格,最新版本改用标准C89风格。在C89中,hello.c应该写成:
#include <stdio.h>int main() {printf("hello world\n");return 0;
}

3. C语言特点及其运行环境

3.1 C语言特点

1.语言简洁、紧凑,使用方便灵活;
2.运算符丰富;
3.数据类型丰富,具有现代语言的各种数据结构;
4.具有结构化的控制语句;
5.语法限制不太严格,程序设计自由度大;
6.C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作;
7.生成目标代码质量高,程序执行效率高;
8.用C语言编写的程序可移植性好(与汇编语言比)。

这是跟C语言诞生之前的语言的比较。

3.2 C语言运行环境

No. IDE/编译器 OS
1 Microsoft Visual C++/Microsoft Visual Studio Windows
2 Code::Blocks Linux
3 gcc Windows/Linux
4 clang Windows/Linux
5 eclipse Windows/Linux

3.3. C语言和面向对象语言C++、Java的比较

1.C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。
2.C++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。
Java是在C++的基础上进行改进的,摒弃了一些C++的不足之处,语法跟3.C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。

3.4 注释
在代码中有些不用于执行,仅仅作为代码说明的文本,称为注释。
在C语言中,使用/*作为注释的开始,*/作为注释的结束。例如

/* 这是注释 */

也可以写作多行

/* 这
是
注
释
*/

注释主要提高代码可读性,常用来说明代码功能以及实现逻辑。
上面的注释称为多行注释。在C99中,支持单行注释,只需要//作为注释开头,注释只能对单行起作用。

C语言入门(1)——Hello World相关推荐

  1. 写一篇C语言入门第一讲

     嗨~大家好~  我是小白,最近才使用这个博客,我是一个计算机系的学生,我会在这里发一些我给我们班其他同学讲C语言入门的博文,希望大家能共享这些资料,当然了,我也很希望大家给我提出好的意见或建议.(P ...

  2. C语言入门练习 - 第二期 判断语句与循环语句(题解)

    比赛地址:C语言入门练习 - 第二期 判断语句与循环语句 A.入门--基础语法(for) #include<stdio.h> int main(){int n,i;scanf(" ...

  3. 计算机书籍-Go语言入门经典SAMS Teach Yourself

    书名:Go语言入门经典 作者:[英]乔治 奥尔波(George Ornbo) 出版社:人民邮电出版社 出版时间:2018年08月 去当当网了解

  4. c语言中描述y是奇数,4章选择结构程序设计C语言入门习题

    C语言入门习题 第四章 选择结构程序设计 一.选择题 1.有以下程序 main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) pr ...

  5. C#forUnity快速入门(连载2)-C#语言入门

     C# for Unity 编程语言快速入门教程(连载2)---C#语言入门 接上篇内容,我们把更多的C#语言入门级编程习题发布如下,希望能够对C#编程小白提高技能有帮助. 三:  学习循环语句(续) ...

  6. python终结一个循环额_Python语言入门之内存管理方式和垃圾回收算法解析

    本文主要向大家介绍了Python语言入门之内存管理方式和垃圾回收算法解析,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在列表,元组,实例,类,字典和函数中存在循环引用问题.有 ...

  7. VML编程之------VML语言入门《VML极道教程》原著:沐缘华

    <VML极道教程>原著:沐缘华 1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解.你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果.极道学习方 ...

  8. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

  9. c语言作业ppt模板,C语言入门教学PPT模板

    目前要说发展前景最好的行业,那么就必然是互联网行业了,大部分行业现在都离不开计算机,也就是说学好计算机,走到哪里都不怕,特别是程序员,那么C语言就是首先需要接触的.本模板是由西西为大家整理的C语言入门 ...

  10. python语言入门m-「数据挖掘入门系列」Python快速入门

    Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaco ...

最新文章

  1. [Kafka与Spark集成系列二] Spark的安装及简单应用
  2. linux使用共享内存进行进程通信
  3. linux localhost的修改
  4. php 修改input内容,JS简单获取并修改input文本框内容的方法示例
  5. 安装和使用memcached
  6. 日志收集神器 Logstash,闪亮登场~
  7. 自定义镜像迁移实例到新的区域(实例启动异常排解)
  8. Spring IoC、应用上下文容器层次分析
  9. python开发ios程序_使用Python开发iOS程序
  10. JS生成uuid的四种方法
  11. 360浏览器极速模式和兼容模式
  12. c++哈利波特编程代码
  13. 彻底关闭Windows DefenderWindows 更新
  14. Python自学之路第十四步——与周杰伦有关的岁月
  15. 日语的汉(训读)字音读音便规则
  16. 自定义POI的excel工具类-xls-xlsx
  17. 二叉树遍历的超简单方法(详细、简单)
  18. PHP时间戳和日期的相互转换
  19. Android开发——Android中的二维码生成与扫描
  20. 服务器共享文件夹不刷新,win10文件夹不自动刷新的解决方案

热门文章

  1. R语言 第三方软件包的下载及安装
  2. oracle连接失败的原因总结
  3. 数据库索引的作用?什么时候用索引?优缺点?
  4. 常用的在线工具类网站清单
  5. Mac 安装 LaTeX(MacTeX)
  6. Thunderbolt4,雷电4与USB4
  7. 服务器有国产化系统吗,服务器国产化
  8. 吃糖果游戏(tyvj 1567)
  9. LDA(Linear Discriminant Analysis)的原理详解
  10. 【Docker】linux下docker的卸载