<10>
分析
C
语言程序的框架
每个
c
语言程序都有个执行的入口,称之为主函数(
main
)
问题:
c
语言程序是否可以没有主函数?是否可以有多个主函数?
printf
(打印函数) 的意思是将内容打印在控制台
printf
是一个库函数(
C
语言本身提供的函数),需要引入头文件 :
#include <stdio.h>
用双引号引起的一段内容,称之为字符串。
return 0
代表返回
0
数据类型
说明
char
字符型
short
短整型
int
整型
long
长整型
long long
更长的整型
float
单精度浮点型
double
双精度浮点型
(
3
)数据类型
数据类型
说明
void
无类型
案例:
结果:
小插曲:转换说明符
Tips:
在输入时同样参考上面的转换说明符。
int
main
() {
char
ch
=
'a'
;
printf
(
"%c\n"
,
ch
);
//
打印字符格式的数据
int
age
=
20
;
printf
(
"%d\n"
,
age
);
//
打印整型十进制数据
float
height
=
1.73
;
printf
(
"%f\n"
,
height
);
double
pi
=
3.14
;
printf
(
"%lf\n"
,
pi
);
return
0
;
}
// char ch=‘a’;
表示在内存中申请一块空间,用来存储字符
a,
空间的名称叫
ch.
其它的类似
%
d
打印十进制数据
%
x
打印
16
进制数据
0XAA
aa
%
o
打印
8
进制数据
printf
(
"%o"
,
012
);
// 12
%
#o
原样打印
8
进制数据
printf
(
"%#o"
,
012
);
// 012
%
c
打印字符格式数据
%
f
打印浮点型数字
%
u
打印无符号十进制数据
0XAA 170
,
printf
(
"%u"
,
012
);
//10
%
p
以地址的形式打印数据
%
X
打印
16
进制数据
(
大写形式
)
0XAA
AA
%
#X
原样打印
16
进制数据
0XAA 0XAA
%
e
以指数形式打印数据
%
ld
打印
long
格式的数据
%
lf
打印
double
类型数据
案例
int
main
() {
double
a
;
//
双精度浮点数,应该使用
%lf
转换说明符
scanf
(
"%f"
,
&
a
);
//
此处代码错误
printf
(
"%f"
,
a
);
//
此处代码错误
return
0
;
}
注意: //数据类型 变量名=表达式
char c = 'a';//声明一个字符变量,保存字符a 字符用单引号''表示
short age = 18;//声明一个短整型变量 保存年龄
float weight = 72.4f;//声明一个浮点型变量 保存体重
long long gdp = 156454564546545;//声明一个长整型变量 保存gdp
int isEmply = 0;//真 true(非0)假false(0) 小驼峰式命名 前边小写后边大写
char teacherName[] = "wulaoshi";//字符串表示双引号引起来""
char c = 'a';//声明一个字符变量,保存字符a 字符用单引号''表示
short age = 18;//声明一个短整型变量 保存年龄
float weight = 72.4f;//声明一个浮点型变量 保存体重
long long gdp = 156454564546545;//声明一个长整型变量 保存gdp
int isEmply = 0;//真 true(非0)假false(0) 小驼峰式命名 前边小写后边大写
char teacherName[] = "wulaoshi";//字符串表示双引号引起来""
测试:
每种类型的大小是多少?
通过
sizeof
进行检测。
#include <stdio.h>
int
main
() {
printf
(
"%zd\n"
,
sizeof
(
char
));
printf
(
"%zd\n"
,
sizeof
(
short
));
printf
(
"%zd\n"
,
sizeof
(
int
));
printf
(
"%zd\n"
,
sizeof
(
long
));
printf
(
"%zd\n"
,
sizeof
(
float
));
printf
(
"%zd\n"
,
sizeof
(
double
));
printf
(
"%zd\n"
,
sizeof
(
long long
));
return
0
;
}
类型
X86
X64
char
1 1
short
2 2
int
4 4
unsigned int
4 4
long
4 4
long long
8 8
unsigned long
4 4
float
4 4
double
8 8
char*
4
8
int*
4
8
C
语言规定:
short
和
int
型至少为
16
位,
long
型至少为
32
位,并且
short
型长度不能超过
int
型,而
int
型不
能超过
long
型。这就是在说各个类型的变量长度是由编译器来决定的
常量与变量:
定义变量的方式:
//
定义一个整型变量
age
int
age
=
20
;
//
定义一个单精度浮点型变量
weight
float
weight
=
57.4f
;
//
定义一个字符型变量
ch
char
ch
=
'z'
;
变量的分类:
全局变量和局部变量
注意:全局变量名和局部变量名可以相同,在使用时,局部变量优先。
建议不要相同
,
容易混淆
。
局部变量只能在所属的代码块中使用
[
用
{}
包裹起来的区域
]
,在所属代码块之外不能使用。
变量的使用
//
定义一个整型变量
age
int
age
=
20
;
//
定义一个单精度浮点型变量
weight
float
weight
=
57.4f
;
//
定义一个字符型变量
ch
char
ch
=
'z'
;
int
global
=
2023
;
//
全局变量
int
main
() {
//
定义一个整型变量
age
,局部变量
int
age
=
20
;
//
定义一个单精度浮点型变量
weight
,局部变量
float
weight
=
57.4f
;
//
定义一个字符型变量
ch
,局部变量
char
ch
=
'z'
;
//
再次定义
global
会不会出问题?
int
global
=
2024
;
printf
(
"%d"
,
global
);
}
变量的使用:
#include <stdio.h>
int
main
() {
int
num1
=
0
;
int
num2
=
0
;
int
sum
=
0
;
printf
(
"
请输入
num1
和
num2 \n"
);
scanf
(
"%d %d"
,
&
num1
,
&
num2
);
sum
=
num1
+
num2
;
printf
(
"%d + %d = %d"
,
num1
,
num2
,
sum
);
return
0
;
}
注意:
scanf
叫做输入函数,用来接收控制台输入的数据。
在输入函数中,用来接收输入值的变量前要加
&
,表示取地址。其中
&
符号是取地址符。
在使用
scanf
时会有个错误信息
常量:
C
语言中,常量和变量的定义形式有很大的差异。
C
语言中的常量分为以下
4
种:
<1>
字面常量
<2>const
修饰的常变量
<3>#define
定义的标识符常量
<4>
枚举常量
枚举:将数据一一列举
枚举关键字:
enum
(
5
)字符串、转义符和注释
1.
字符串
“Hello World!”
由双引号引起来的一串字符称为字符串字面值,简称字符串。
#define PI 3.14f
int
main
() {
return
0
;
}
enum
Gender
{
Male
,
Female
};
// Male
,
Female
就是枚举常量
int
main
() {
//
枚举常量的使用
printf
(
"%d\n"
,
Male
);
printf
(
"%d\n"
,
Female
);
return
0
;
}