一、输出hello world:
在C语言中,每个符号都是有含义的,都不能乱写。
#include <stdio.h>
/*
# 预处理,预先做的处理,在编译之前做处理。
include 是一个预处理的指令,包含头文件。原理:将头文件中的内容复制粘贴到include的位置上。
为什么要包含头文件?为了声明
什么是声明?解释说明,我们在编程中会自己定义很多标识符(名称),我们自己起的名称C语 言是不认识的,我们必须对每个名称进行声明。
stdio.h 是C语言官方提供的头文件之一
std stdandard缩写 标准 i in输入 o out输出 h head头文件后缀
stdio.h是 标准输入输出头文件,其中声明了C语言官方定义一些输入输出的函数
外部到程序 输入
程序到外部 输出
hello world程序中的hello world是输出
< > 表示在标准库的路径中查找头文件。我们在安装C语言环境时就指定标准库的位置。
还可以使用""来包含头文件,从我们自己指定的路径中查找头文件,可以是任意位置。
<>一般包含C语言为我们提供的头文件,""一般包含我们自己写的头文件。
*/
/*
main函数,也叫主函数,是程序的入口,是程序的逻辑开始执行的地方。每个C语言程序都要有一个main函数,不能没有,也不能是两个。
新手写main函数经常出现的错误:将main函数写成mian函数。
*/
int main()
{
/*
printf是在stdio.h中声明的一个输出函数。
print打印 f format缩写 格式化 printf格式化输出
格式化:对字符串格式化,有些时候我们需要的字符串的内容会由一些变量的值决定,将变量的值放到字符串中,就是字符串格式化。
在C语言中""表示字符串常量
\n叫转义字符,有一定功能的字符,不会被原样输出,转义字符不只\n。
\n的含义是换行回车,换行是光标去到下一行,回车是光标回到行首
;表示一条C语言的语句写完了。
*/
printf("hello world\n");
//return 0;在函数中出现return表示函数结束,0
return 0;
}
练习:
输出I’m a student,不要在刚才示例的基础上修改。要重新创建文件,把流程自己写一遍。
#include <stdio.h>
int main()
{
printf("i am a student\n");
return 0;
}
二、变量
1. 如何定义变量
变量有什么用?
1+2 = ? 3
x+2 = ? 现在还不能确定算式的决具体结果。如果已知x=3,结果是?5
变量是用来表达逻辑的,虽然变量没有值的时候不能计算出具体的结果,但是可以通过变量把逻辑表达清楚,只要给变量一个值就能计算出具体的结果。
数据类型(关键字) 变量名字(标识符) ;
在编程中我们自己取的名字都叫标识符。
整数类型:int (关键字) integer
int a;
定义一个整型变量,变量名叫a,变量a中用来存放整数
浮点类型:float (关键字) 浮点型就是我们常说的小数类型
float b;
定义一个浮点型变量,变量名叫b,用来存放小数
2.命名规则(标识符):
- 数字、字母和下划线组成。 ?/!@#$%^&*()都不可以出现
- 不能以数字开头。 1a 2c 1 2 都不可以
- 严格区分大小写。 apple Apple不是一个名字
- 不能以关键字起名。 int int; float float;都不可以
- 不要使用拼音。
前4条是语法要求,第5条是道德要求。
汉语的二义性很强 nibushiyyigeren
我们对标识符的命名,一定要包含标识符的功能。
3. 变量赋值
int a; 定义整型变量a
a = 10; 对变量a赋值10
注意:变量中没有值,一定运行不出正确的结果。所以对于变量的第一步操作,一定是初始化或者赋值。
4. 什么是初始化
定义的同时赋初值。
int a = 10; 定义变量a,并初始化10
在C语言中赋值和初始化没有明显的区别。只要能分辨初始化和赋值就够用了。
但是在C++中赋值和初始化有本质区别,代码执行的过程不一样。
5. 格式符
在printf输出的时候,如果想把一些变量的值输出,怎么办?
%d 十进制整数 int
%o 八进制整数 int
%x 十六进制整数 int
%f float类型小数 默认输出小数点后6位
示例:
#include <stdio.h>
int main()
{
int a = 10;//定义整型变量a,并初始化10
printf("%d %o %x\n", a, a, a);//分别以十进制、八进制、十六进制打印a的值。进制间的转换我们很快就讲。
float b = 1.23;//定义浮点型变量b,并初始化1.23
printf("%f\n", b);//打印变量b的值
return 0;
}
练习:
定义一个整型变量x, 定义一个浮点型变量y,
将 -1 赋值给变量x,将3.14 赋值给变量y,打印 x y的值
再将1 赋值给变量x,将-3.14 赋值给变量y,再打印 x y的值
没有实际逻辑意义,就是为了练习语法。
#include <stdio.h>
int main()
{
int x;
float y;
x = -1;
y = 3.14;
printf("x = %d y = %f\n", x, y);
x = 1;
y = -3.14;
printf("x = %d y = %f\n", x, y);
return 0;
}
6. 注释:
注释是给自己看的内容,编译器是不看的。用来帮助我们解释说明代码。
单行注释,只对一行有效
//
多行注释,对多行有效
/*
*/
7. 输入和输出函数:
scanf这个函数并不好用,开发时很少使用scanf。学习scanf的目的,是因为我们平时做练习需要有输入,scanf又是C语言所有输入函数中最容易上手的一个。
示例:
#include <stdio.h>
int main()
{
/*
scanf格式化输入
scan 扫描
f format格式化
*/
int a;
/*
%d说明要输入一个整数
&a 参数是变量a的地址。 &符号表示取变量的地址。 取地址的目的是为了让scanf找到变量的位置。
这行代码的含义,使用scanf输入一个整数并且将这个整数放到变量a中。
*/
scanf("%d", &a);
printf("a = %d\n", a);
return 0;
}
运行程序,程序会阻塞在scanf这一行,一直等待我们的输入,直到输入一个整数,否则程序不会向下继续执行。
输入整数后,按回车键完成输入,此时程序从scanf这一行向下继续执行。输入的时候一定要严格按照格式符来输入,不要戏弄scanf。
注意: \n在scanf中是绝对的禁忌!!!如果在scanf的""中出现了\n,输入必出错。
示例:
#include <stdio.h>
int main()
{
int a,b;//定义相同类型的变量时,可以写在一起,变量之间使用,分隔。
//%d%d表示输入两个整数,在实际的输入时,输入的两个整数可以使用回车或者逗号分隔。
/*在scanf的""中两个%d之间不要随便写符号,因为写什么输入的时候就得输入什么。比如"%d,%d",这就代表
实际输入的时候,123,456两个整数之间必须有,分隔。
*/
scanf("%d%d", &a, &b);
printf("a = %d b = %d\n", a, b);
return 0;
}
scanf的""中间,如果写了格式符以外的符号,那么写什么就得输入什么。
#include <stdio.h>
int main()
{
int a,b;
scanf("%d,%d", &a, &b);
printf("a = %d b = %d\n", a, b);
return 0;
}
如果输入时不用,分隔,输入必然产生错误。
练习:
请大家分别定义 int float 两个变量
然后,通过输入来给变量赋值。最后打印输出。
使用一个scanf给两个变量赋值。
#include <stdio.h>
int main()
{
int a;
float b;
scanf("%d%f", &a, &b);
printf("a = %d b = %f\n", a, b);
return 0;
}
8.输入和输出函数的缓存
我们生活中的菜鸟驿站就是一种缓存,提升双方的效率,派件员和用户之间不需要相互等待。
缓存的主要作用就是提升传输的效率,发送方和接收方不用等待。