数据类型
基本类型:字符型、整型、浮点型、双精度浮点型
构造类型:数组、指针、结构体、共用体和枚举
字符型:
类型表示:
(signed) char =
char
--
有符号
char
型
unsigned char
--
无符号
char
型
类型大小:
8
位
= 1
个字节
二进制变化:
0000 0000 ~ 1111 1111 = 256
种变化情况
无符号:数字变化
-- 0~255 = 0~2^8-1
有符号:数字变化
-- -128~127 = -2^7 ~ 2^7-1
类型意义:存放字符型数据(
ASCII
码表)
--
以某些数字代表某种符号。
整型:
类型表示:
int
(signed) int --
有符号整型
unsigned int --
无符号整型
short --
短整型
long --
长整型
类型大小:
int -- 32
位以上的处理器,
int
占
4
个字节,低于
16
位(嵌入式存在
89c51
单片机(
8
位)), 占 2
个字节
-- int
随着芯片的类型,而改变。
short --
短整型 -------------占 2
个字节
long --
长整型 --------------占 4
个字节
浮点型:
类型表示:
float
类型大小:
4
个字节
-- ------
精度:小数点后
6
位
类型意义:存放小数
双精度浮点型:
类型表示:
double
类型大小:
8
个字节
-----------
精度:小数点后
12
位
类型意义:存放小数
变量和常量
关键字与标识符
标识符:使用一些字符代表某个具体的事物(名字)。
组成:数字(
0~9
)、字母(
a~z A~Z
)和下滑线(
_
)组成。
注意:
1.
数字不可以放开头
2.区分大小写
3.不能与关键字相同
32个关键字
数据关键字12个:char,double,float,enum,unsigned ,int,long,short,signed, struct,union,void
控制语句关键字12个:for,do,while,break,continue,if,else,goto,switch,case,default,return
存储类型关键字4个:auto,extern,regsiter,static
其他关键字4个:const,sizeof,typedef,volatile
常量
C
语言中,不可以修改的量。
字符常量
:单引号括起来
-- ‘A’ --
一个字符
双引号括起来
-- “ABCD” --
一串字符:字符串
‘1’ --
字符
1 -----------------------默认类型:字符型 char
数字常量
:
1314 ---------------默认类型:int
小数常量
:
3.14 ---------------默认类型:double
double > int >char(优先级)
‘A’ + 10 --
默认的结果是
int
型
3.14 * 10 =
默认的结果是
double
型
变量
变量:程序运行时,可以修改的量。
变量如何定义:
类型 标识符
; -------
定义
1
个变量 例如:int num;
类型 标识符
= xx;------
定义并且给变量赋初值 int num = 20;
1.
定义
1
个变量
2.
计算机就会在内存中,根据变量的类型,开辟相应的空间,存储数据。
3.
通过变量名
(
标识符
)
来操作该变量空间。
运算符
赋值运算符:
=
算数运算符:
+ - * / %
/:两个整型数操作,结果还是整型数
例如:5/2 = 2
%:求余
-- 除尽之后留下的数
5%2 = 1
5%2.0 -- 错误
--
小数不参与求余
条件运算符
(
关系运算符
):
>(大于
) >=
(大于等于)
<
(小于)
<=
(小于等于) ==(恒等于)
!=
(不等于)
逻辑运算符:
&&
(逻辑与)
||
(逻辑或)
!
(逻辑非)
C 语言编译器:
0 --
结果假 1 -- 结果真
&&:表达式中
1
个为假,结果为假
||:表达式中
1
个为真,结果为真
!:结果取反
赋值复合运算符 : num = num+1 ===== num +=1;
+= -= *= /= %=
自增自减运算符 ++ --
num-- -- 先用后减
--num -- 先减后用
位运算符
& | ~ << >> ^
三目运算符:
max = (num1>num2)?num1:num2;
流程控制语句
if
……
else
……
switch()
……
case
……
for()
while()
do
……
while()
continue
break
goto
return
顺序执行:
从 main
函数开始,到
main
函数结束。
从上到下,从左到右。
continue和break的区别
continue --
用于循环,跳出本次循环。
-- 遇到
continue --
后续代码不执行。
break --
用于循环和
switch
,跳出本层循环。
#include <stdio.h>
int main()
{
for(int num=1; num<12; num++)
{
if (num % 2 == 0) //如果是偶数,跳过当前迭代
continue;
else if (num == 7) //如果是7,跳出循环
break;
printf("num = %d\n",num);
}
return 0;
}
运行结果:
数组
数组的特点:
相同类型数据的集合;数据地址连续
数组类型如何表示: 类型 [数组长度]; 例如 int [10]
数组变量的定义:
类型 标识符[
长度
]; 例如:10个人的身高 int high[10];
类型 标识符[
长度
]={初值}; 3个人的具体身高 int high[3] = {120,178,180};
如何表示单个元素:
数组名
[
下标
];
#include <stdio.h>
//排序(小--高),并且在终端输出
int main()
{
int num1[5] = {5, 10, 2, 3, 7};
int i = 0, j = 0;
int temp = 0;
for(i = 0; i < 5; i++)//数组中有 5 个位置
{
for(j = 0; j < 5-i; j++)
{
if(num1[j] > num1[j+1])
{//冒泡比较
temp = num1[j+1];
num1[j+1] = num1[j];
num1[j] = temp;
}
}
}
for(i = 0; i < 5; i++)
{
printf("%d\t", num1[i]);
}
printf("\n");
return 0;
}
运行结果:
指针
指针的意义:
指针就是 1
个类型,该类型代表是地址
。
如何表示:类型 * 类型表示指针(地址)存储数据的类型
char int float double 数组 指针 结构体等等
描述地址:
1
个空间里面存放的是字符型数据,就是
char *
表示
描述地址:
1
个空间里面存放的是整型数据,就是
int*
表示
描述地址:
1
个空间里面存放的是浮点型数据,就是
float*
表示
描述地址:
1
个空间里面存放的是双精度浮点型数据,就是
double *
表示
类型大小:
32 位计算机
-- 4
个字节
64 位计算机
-- 8
个字节
指针类型如何表示?
--
类型:
指向
空间的类型
类型
*
//char * --
描述该地址中存放的是
char
型数据
//int * --
描述该地址中存放的是
int
型数据
//float * --
描述该地址中存放的是
float
型数据
//double * --
描述该地址中存放的是
double
型数据
函数
函数是程序的最小组成单位。
函数的定义(如何表示):
类型 函数名
(
参数
1,
……
)//
函数头
{
//函数代码开始的位置
程序/
代码
;//
函数体
}
函数名的组成:
1.
字母 数字 下划线组成
2.
数字不可以放开头
3.
区分大小写
4.
不能与关键字相同