0
点赞
收藏
分享

微信扫一扫

第一个C语言程序

Hello World

这个世界上, 几乎所有程序员入门的第一段代码都是Hello World, 原因是当年C语言的作者Dennis Ritchie(丹尼斯 里奇)在他的名著 < The C Programming Language> 中第一次引入, 传为后世经典, 其它语言亦争相效仿, 以示敬意。

第一个C语言程序_c语言

创建C语言文件

第一个C语言程序_c语言程序_02

第一个C语言程序_c语言程序_03

第一个C语言程序_C_04

第一个C语言程序_c语言程序_05

第一个C语言程序_#include_06

后续的都直接下一步即可创建好了

C语言程序的组成


  • 手机有很多功能, "开机", "关机", "打电话", "发短信", "拍照" 等等。
  • 手机中的每一个功能就相当于C语言程序中的一个程序段(函数)
  • 众多功能中总有一个会被先执行, 不可能多个功能一起执行。
  • 想使用手机必须先执行手机的开机功能。
  • 所以C语言程序也一样, 由众多功能、众多程序段组成, 众多C语言程序段中总有一个会被先执行, 这个先执行的程序段我们称之为 "主函数"。


第一个C语言程序_c语言程序_07


  • 一个C语言程序由多个 "函数" 构成, 每个函数有自己的功能。
  • 一个程序有且只有一个主函数。
  • 如果一个程序没有主函数, 则这个程序不具备运行的能力。
  • 程序运行时系统会自动调用主函数, 而其它函数需要开发者手动调用。
  • 主函数有固定书写的格式和范写。


第一个C语言程序_c语言程序_08

函数定义格式

主函数定义的格式:


  • int 代表函数执行之后会返回一个整数类型的值。
  • main 代表这个函数的名字叫做 main。
  • () 代表这是一个函数。
  • {} 代表这个程序段的范围。
  • return 0; 代表函数执行完之后返回整数0。


int main() {
// insert code here...
return 0;
}

其它函数定义的格式:


  • int 代表函数执行之后会返回一个整数类型的值。
  • call 代表这个函数的名字叫做 call。
  • () 代表这是一个函数。
  • {} 代表这个程序段的作用范围。
  • return 0; 代表函数执行完之后返回整数0。


int call() {
return 0;
}

执行定义好的函数

主函数(main)会由系统自动调用, 但其它函数不会, 所以想要执行其它函数就必须在main函数中手动调用定义好的函数。


  • call 代表找到名称叫做 call 的某个东西。
  • () 代表要找到的名称叫 call 的某个东西是一个函数。
  • ; 代表调用函数的语句已经编写完成。
  • 所以​​call();​​ 代表找到 call 函数, 并执行 call 函数。


int main() {
call();
return 0;
}

第一个C语言程序_#include_09

往屏幕上输出内容


  • 输出内容是一个比较复杂的操作, 所以系统提前定义好了一个专门用于输出内容的函数叫做 printf 函数, 我们只需要执行系统定义好的​​printf​​ 函数就可以往屏幕上输出内容。
  • 但凡需要执行一个函数, 都是通过函数名称 + 圆括号的形式来执行。
  • 如下代码的含义是: 当程序运行时系统会自动执行 main 函数, 在系统自动执行 main 函数时我们手动执行了call 函数和 printf 函数。
  • 经过对代码的观察, 我们发现两个问题。
  • 并没有告诉 printf 函数, 我们要往屏幕上输出什么内容。
  • 找不到 printf 函数的实现代码。


int call(){
return 0;
}

int main(){
call();
printf();
return 0;
}

告诉 printf 函数要输出的内容,将要输出的内容编写到 printf 函数后面的圆括号中即可,注意: 圆括号中编写的内容必须用双引号引起来。

printf("Hello World!");

找到 printf 函数的实现代码,由于 printf 函数是系统实现的函数, 所以想要使用 printf 函数必须在使用之前告诉系统去哪里可以找到 printf 函数的实现代码, ​​#include <stdio.h>​​​ 就是告诉系统可以去 ​​stdio​​​ 这个文件中查找 ​​printf​​ 函数的声明和实现。

第一个C语言程序_#include_10

#include <stdio.h>

int call(){
return 0;
}

int main(){
call();
printf("Hello World!");
return 0;
}

运行编写好的程序

方式1:


  • 点击小榔头将 "源代码" 编译成 "可执行文件"。
  • 找到编译后的源代码, 打开终端(CMD)运行可执行文件。


第一个C语言程序_#include_11

第一个C语言程序_c语言程序_12

点击小榔头之后才会有的,进入点击了小榔头之后生成的文件夹中的 ​​debug​​ 目录当中。

第一个C语言程序_c语言_13

进入 CMD 运行可执行文件,效果如下所示:

第一个C语言程序_#include_14

方式2:


  • 直接点击Qt开发工具运行按钮。


第一个C语言程序_c语言程序_15

效果和我们之前 CMD 的方式一样的。

第一个C语言程序_c语言_16

main函数注意点及其它写法

C语言中, 每条完整的语句后面都必须以分号结尾。

int main(){
printf("Hello World") // 如果没有分号编译时会报错
return 0;
}
int main(){
// 如果没有分号, 多条语句合并到一行时, 系统不知道从什么地方到什么地方是一条完整语句
printf("Hello World") return 0;
}

C语言中除了注释和双引号引起来的地方以外都不能出现中文。

第一个C语言程序_c语言程序_17

第一个C语言程序_c语言程序_18

第一个C语言程序_c语言_19

int main(){
printf("hello world\n"); // 这里的分号如果是中文的分号就会报错
return 0;
}

一个C语言程序只能有一个 main 函数。

int main(){
return 0;
}
// 编译时会报错, 重复定义了
int main(){
return 0;
}

一个C语言程序不能没有 main 函数

// 编译时报错, 因为只有 call 函数, 没有main函数
int call(){
return 0;
}
// 编译时报错, 因为main函数的名称写错了,还是相当于没有main函数
int mian(){
return 0;
}

main 函数前面的 int 可以不写或者换成 void

#include <stdio.h>

// 不会报错
main(){
printf("hello world");
return 0;
}
#include <stdio.h>

// 不会报错
void main(){
printf("hello world");
return 0;
}

main 函数中的 ​​return 0​​ 可以不写

// 不会报错
int main(){
printf("hello world");
}

多种写法不报错的原因。


  • C语言最早的时候只是一种规范和标准(例如 C89, C11等)
  • 标准的推行需要各大厂商的支持和实施。
  • 而在支持实施的时候由于各大厂商利益、理解等问题, 导致了实施的标准不同, 发生了变化。
  • Turbo C。
  • Visual C(VC)
  • GNU C(GCC)


所以大家才会看到不同的书上书写的格式有所不同, 有的返回 int, 有的返回 void, 有的甚至没有返回值。

所以大家只需要记住最标准的写法即可, no zuo no die。

#include <stdio.h>

int main(){
printf("hello world");
return 0;
}

Tips:


  • 语法错误:编译器会直接报错。
  • 逻辑错误:没有语法错误,只不过运行结果不正确。


C语言程序练习

编写一个C语言程序, 用至少2种方式在屏幕上输出以下内容。

*** ***
*********
*******
****
**

普通青年实现。

#include <stdio.h>

int main(){
printf(" *** *** \n");
printf("*********\n");
printf(" *******\n");
printf(" ****\n");
printf(" **\n");
return 0;
}

2B青年实现。

#include <stdio.h>

int main(){
printf(" *** *** \n*********\n *******\n ****\n **\n");
return 0;
}

文艺青年实现。

#include <stdio.h>

int main(){
int i = 0;
while (1) {
if (i % 2 == 0) {
printf(" *** *** \n");
printf("*********\n");
printf(" *******\n");
printf(" ****\n");
printf(" **\n");
}else
{
printf("\n");
printf(" ** ** \n");
printf(" *******\n");
printf(" *****\n");
printf(" **\n");
}
sleep(1);
i++;
system("cls");
}
return 0;
}

避免程序出现BUG

_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
. ' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='

.............................................
佛祖保佑 永无BUG
━━━━━━神兽出没━━━━━━
   ┏┓    ┏┓
  ┏┛┻━━━━━━┛┻┓
  ┃    ┃
  ┃   ━ ┃
  ┃ ┳┛  ┗┳ ┃
  ┃    ┃
  ┃   ┻ ┃
  ┃ ┃
  ┗━┓    ┏━┛Code is far away from bug with the animal protecting
   ┃    ┃ 神兽保佑,代码无bug
   ┃    ┃
   ┃    ┗━━━┓
   ┃    ┣┓
   ┃    ┏━━┛┛
   ┗┓┓┏━┳┓┏┛
   ┃┫┫ ┃┫┫
   ┗┻┛ ┗┻┛

━━━━━━感觉萌萌哒━━━━━━
´´´´´´´´██´´´´´´´
´´´´´´´████´´´´´´
´´´´´████████´´´´
´´`´███▒▒▒▒███´´´´´
´´´███▒●▒▒●▒██´´´
´´´███▒▒▒▒▒▒██´´´´´
´´´███▒▒▒▒██´ 项目:第一个C语言程序
´´██████▒▒███´´´´´ 语言: C语言
´██████▒▒▒▒███´´ 编辑器: Qt Creator
██████▒▒▒▒▒▒███´´´´ 版本控制:git-github
´´▓▓▓▓▓▓▓▓▓▓▓▓▓▒´´ 代码风格:BNTang style
´´▒▒▒▒▓▓▓▓▓▓▓▓▓▒´´´´´
´.▒▒▒´´▓▓▓▓▓▓▓▓▒´´´´´
´.▒▒´´´´▓▓▓▓▓▓▓▒
..▒▒.´´´´▓▓▓▓▓▓▓▒
´▒▒▒▒▒▒▒▒▒▒▒▒
´´´´´´´´´███████´´´´´
´´´´´´´´████████´´´´´´´
´´´´´´´█████████´´´´´´
´´´´´´██████████´´´´ 大部分人都在关注你飞的高不高,却没人在乎你飞的累不累,这就是现实!
´´´´´´██████████´´´ 我从不相信梦想,我,只,相,信,自,己!
´´´´´´´█████████´´
´´´´´´´█████████´´´
´´´´´´´´████████´´´´´
________▒▒▒▒▒
_________▒▒▒▒
_________▒▒▒▒
________▒▒_▒▒
_______▒▒__▒▒
_____ ▒▒___▒▒
_____▒▒___▒▒
____▒▒____▒▒
___▒▒_____▒▒
███____ ▒▒
████____███
█ _███_ _█_███
——————————————————————————女神保佑,代码无bug——————————————————————

多语言对比

C语言。

#include<stdio.h>

int main() {
printf("BNTang 带你装B带你飞");
return 0;
}

C++语言。

#include<iostream>
using namespace std;

int main() {
cout << "BNTang 带你装B带你飞" << endl;
return 0;
}

OC语言。

#import <Foundation/Foundation.h>

int main() {
NSLog(@"BNTang 带你装B带你飞"");
return 0;
}

Java语言。

class Test
{
public static viod main()
{
system.out.println("BNTang 带你装B带你飞");
}
}

Go语言。

package main
// 引入fmt库
import "fmt"

func main() {
fmt.Println("BNTang 带你装B带你飞")
}




举报

相关推荐

0 条评论