C语言入门(1)——Hello World
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.c
和a.out
。hello.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相关推荐
- 写一篇C语言入门第一讲
嗨~大家好~ 我是小白,最近才使用这个博客,我是一个计算机系的学生,我会在这里发一些我给我们班其他同学讲C语言入门的博文,希望大家能共享这些资料,当然了,我也很希望大家给我提出好的意见或建议.(P ...
- C语言入门练习 - 第二期 判断语句与循环语句(题解)
比赛地址:C语言入门练习 - 第二期 判断语句与循环语句 A.入门--基础语法(for) #include<stdio.h> int main(){int n,i;scanf(" ...
- 计算机书籍-Go语言入门经典SAMS Teach Yourself
书名:Go语言入门经典 作者:[英]乔治 奥尔波(George Ornbo) 出版社:人民邮电出版社 出版时间:2018年08月 去当当网了解
- c语言中描述y是奇数,4章选择结构程序设计C语言入门习题
C语言入门习题 第四章 选择结构程序设计 一.选择题 1.有以下程序 main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) pr ...
- C#forUnity快速入门(连载2)-C#语言入门
C# for Unity 编程语言快速入门教程(连载2)---C#语言入门 接上篇内容,我们把更多的C#语言入门级编程习题发布如下,希望能够对C#编程小白提高技能有帮助. 三: 学习循环语句(续) ...
- python终结一个循环额_Python语言入门之内存管理方式和垃圾回收算法解析
本文主要向大家介绍了Python语言入门之内存管理方式和垃圾回收算法解析,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在列表,元组,实例,类,字典和函数中存在循环引用问题.有 ...
- VML编程之------VML语言入门《VML极道教程》原著:沐缘华
<VML极道教程>原著:沐缘华 1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解.你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果.极道学习方 ...
- c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事
一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...
- c语言作业ppt模板,C语言入门教学PPT模板
目前要说发展前景最好的行业,那么就必然是互联网行业了,大部分行业现在都离不开计算机,也就是说学好计算机,走到哪里都不怕,特别是程序员,那么C语言就是首先需要接触的.本模板是由西西为大家整理的C语言入门 ...
- python语言入门m-「数据挖掘入门系列」Python快速入门
Python环境搭建 本次入门系列将使用Python作为开发语言.要使用Python语言,我们先来搭建Python开发平台.我们将基于Python 2.7版本.以及Python的开发发行版本Anaco ...
最新文章
- [Kafka与Spark集成系列二] Spark的安装及简单应用
- linux使用共享内存进行进程通信
- linux localhost的修改
- php 修改input内容,JS简单获取并修改input文本框内容的方法示例
- 安装和使用memcached
- 日志收集神器 Logstash,闪亮登场~
- 自定义镜像迁移实例到新的区域(实例启动异常排解)
- Spring IoC、应用上下文容器层次分析
- python开发ios程序_使用Python开发iOS程序
- JS生成uuid的四种方法
- 360浏览器极速模式和兼容模式
- c++哈利波特编程代码
- 彻底关闭Windows DefenderWindows 更新
- Python自学之路第十四步——与周杰伦有关的岁月
- 日语的汉(训读)字音读音便规则
- 自定义POI的excel工具类-xls-xlsx
- 二叉树遍历的超简单方法(详细、简单)
- PHP时间戳和日期的相互转换
- Android开发——Android中的二维码生成与扫描
- 服务器共享文件夹不刷新,win10文件夹不自动刷新的解决方案