初识C语言
本章重点:
什么是C语言
第一个C语言程序
数据类型
变量、常量
字符串+转义字符+注释
选择语句
循环语句
函数
数组
操作符
常见关键字
define 定义常量和宏
指针
结构体
1
. 什么是C语言?
C
语言是一门通用
计算机编程语言
,广泛应用于底层开发。C语言的设计目标是
提供一种能以简易的方式
编译
、处理低级
存储器
、产生少量的
机器码
以及不需要
任何运行环境支持便能运行的编程语言。
2. 第一个C语言程序
C语言的基本框架:
1
#
include
<stdio.h>
2
int main
()
//main
函数是程序的入口
3
4
{
5
printf
(
"hello"
);
//
打印值
6
return
0
;
7
}
8
//
一个工程中
main
函数有且仅有一个
3. 数据类型
1
char
//
字符数据类型
2
short
//
短整型
3
int
//
整形
4
long
//
长整型
5
long long
//
更长的整形
6
float
//
单精度浮点数
7
double
//
双精度浮点数
对应的返回类型
1
char
a =
'w'
;
2
printf
(
"%c"
, a);
//
对应的返回类型
3
int
b =
120
;
4
printf
(
"%d"
, b);
5
float
c =
3.14
;
6
printf
(
"%f"
, f);
7
double
d =
3.1415926
;
8
printf
(
"%lf"
, d);
可以通过 sizeof( );来计算类型的大小
1
#
include
<stdio.h>
2
int main
()
3
{}
//
数据类型的大小为
4
printf
(
"%d\n"
,
sizeof
(
char
));
// 1
5
printf
(
"%d\n"
,
sizeof
(
short
));
// 2
6
printf
(
"%d\n"
,
sizeof
(
int
));
// 4
7
printf
(
"%d\n"
,
sizeof
(
long
));
// 4
8
printf
(
"%d\n"
,
sizeof
(
long long
));
// 8
9
printf
(
"%d\n"
,
sizeof
(
float
));
// 4
10
printf
(
"%d\n"
,
sizeof
(
double
));
// 8
11
printf
(
"%d\n"
,
sizeof
(
long double
));
//8
12
return
0
;
13
}
sizeof()
返回一个变量或类型的大小(以字节为单位)
计算机中的单位:
byte - 字节 = 8bit
kb = 1024byte
mb = 1024kb
gb = 1024mb
tb = 1024gb
pb = 1024tb
计算机中识别二进制:1 0
八进制 :0-7
十进制 :0-9
4.变量、常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等
等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用
常量
的概念来表示,变得值C语言中用
变量
来表
示。
4.1定义变量的方法
1
int
age =
150
;
2
float
b =
45.5f
;
3
char
ch =
'w'
;
4.2 变量的分类
局部变量
:作用于int main()函数内
全局变量
:作用于int main()函数外
1
#
include
<stdio.h>
2
int
global =
2019
;
//
全局变量
3
int main
()
4
{
5
int
local =
2018
;
//
局部变量
6
int
global =
2020
;
//
局部变量
7
printf
(
"global = %d\n"
, global);
8
return
0
;
9
}
当
局部变量
和
全局变量
同时出现时:局部优先
4.3 变量的使用
1
#
include
<stdio.h>
2
int main
()
3
{
4
int
num1 =
0
;
5
int
num2 =
0
;
6
int
sum =
0
;
7
printf
(
"
输入两个操作数
:>"
);
8
scanf
(
"%d %d"
, &num1, &num2);
9
sum = num1 + num2;
10
printf
(
"sum = %d\n"
, sum);
11
return
0
;
12
}
这里介绍一下输入,输出语句
输入语句
scanf() : 用于获取输入的值
使用时用先声明 ,在程序的第一行写上:
#define _CRT_SECURE_NO_WARNINGS
1
输出语句
printf() :用于打印要输出的值
4.4 变量的作用域和生命周期
作用域
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周
期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
4.5 常量
C语言中的常量分为以下以下几种:
—— 字面常量
—— const 修饰的常变量
—— #define 定义的标识符常量
—— 枚举常量
1
#
include
<stdio.h>
2
//
举例
3
enum
Sex
4
{
5
MALE,
6
FEMALE,
7
SECRET
8
};
9
//
括号中的
MALE,FEMALE,SECRET
是枚举常量
10
int main
()
11
{
12
//
字面常量演示
13
3.14
;
//
字面常量
14
1000
;
//
字面常量
15
16
//const
修饰的常变量
17
const float
pai =
3.14f
;
//
这里的
pai
是
const
修饰的常变量
18
pai =
5.14
;
//
是不能直接修改的!
19
20
//#define
的标识符常量 演示
21
#
define
MAX 100
22
printf
(
"max = %d\n"
, MAX);
23
24
//
枚举常量演示
25
printf
(
"%d\n"
, MALE);
26
printf
(
"%d\n"
, FEMALE);
27
printf
(
"%d\n"
, SECRET);
28
//
注:枚举常量的默认是从
0
开始,依次向下递增
1
的
29
30
return
0
;
31
}
注:
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言
中只是在语法层面限制了变量 pai 不能直接被改变,但是 pai 本质上还是一个
变量的,所以叫常变量。
4. 字符串+转义字符+注释
4.1 字符串
1
"hello bit.\n"
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(
String
Literal),或者简称字符串。
注
:
字符串的
结束标志
是一个
\0
的转义字符。在
计算字符串长度的时候 \0 是
结束标志,不算作字符串内容。
1
#
include
<stdio.h>
2
//
下面代码,打印结果是什么?为什么?(突出
'\0'
的重要性)
3
int main
()
4
{
5
char
arr1[] =
"bit"
;
6
char
arr2[] = {
'b'
,
'i'
,
't'
};
7
char
arr3[] = {
'b'
,
'i'
,
't'
,
'\0'
};
8
printf
(
"%s\n"
, arr1);
9
printf
(
"%s\n"
, arr2);
10
printf
(
"%s\n"
, arr3);
11
return
0
;
12
}
打印结果为:
1
bit
2
bit
烫烫烫烫蘠
it
//
没有以
\0
作为结束标志的打印结果
3
bit
4.2 转义字符
转义字符 释义
\?
在书写连续多个问号时使用,防止他们被解析成三字母词
\'
用于表示字符常量'
\“
用于表示一个字符串内部的双引号
\\
用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a
警告字符,蜂鸣
\b
退格符
\f
进纸符
\n
换行
\r
回车
\t
水平制表符
\v
垂直制表符
\ddd
ddd表示1~3个八进制的数字。 如: \130 X
\xdd
dd表示2个十六进制数字。 如: \x30 0
1
//
程序输出什么?
2
#
include
<stdio.h>
3
int main
()
4
{
5
printf
(
"%d\n"
,
strlen
(
"abcdef"
));
6
// \62
被解析成一个转义字符
7
printf
(
"%d\n"
,
strlen
(
"c:\test\628\test.c"
));
8
return
0
;
9
}
输出结果为:
1
6
2
14
strlen()
计算字符串的长度
5. 注释
注释有两种风格
:
C语言风格的注释 /*xxxxxx*/
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行
6. 选择语句
1
#
include
<stdio.h>
2
int main
()
3
{
4
int
a =
0
;
5
printf
(
"
你会去敲代码吗?(选择
1 or 0
)
:>"
);
6
scanf
(
"%d"
, &);
7
if
(a ==
1
)
8
{
9
prinf
(
"
坚持,你会有好
offer\n"
);
10
}
11
else
12
{
13
printf
(
"
放弃,回家卖红薯
\n"
);
14
}
15
return
0
;
16
}
if.......else语句
7. 循环语句
while语句
for语句
do ... while语句
while
循环的实例
1
#
include
<stdio.h>
2
int main
()
3
{
4
printf
(
"
加入比特
\n"
);
5
int
line =
0
;
6
while
(line<=
20000
)
7
{
8
line++;
9
printf
(
"
我要继续努力敲代码
\n"
);
10
}
11
if
(line>
20000
)
12
printf
(
"
好
offer\n"
);
13
return
0
;
14
}