C语⾔数据类型和变量

C语⾔数据类型和变量

1,数据类型介绍
C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。
使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型

在这里插入图片描述

2,字符类型

1 //整型�
char //character
[signed] char //有符号的
unsigned char //⽆符号的x
2//短整型
short [int]
[signed] short [int]
unsigned short [int]
3//整型
int
[signed] int
unsigned int
4//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
5//更⻓的整型
long long [int]
[signed] long long [int]
unsigned long long [int]
6,浮点型
float
double
long double
7,布尔类型
C语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的
_Bool//布尔类型的使⽤得包含头⽂件 <stdbool.h>布尔类型变量的取值是: true 或者 false 

2,sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof的操作符数的类型⻓度的,单位是字节。

sizeof( 类型 )
sizeof 表达式

3,sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。

#include <stdio.h>
int main()
{
 int a = 10;
 printf("%zd\n", sizeof(a));
 printf("%zd\n", sizeof a);//a是变量的名字,可以省略掉sizeof后边的()
 printf("%zd\n", sizeof(int));
 printf("%zd\n", sizeof(3 + 3.5));
 return 0;
}

4,sizeof 中表达式不计算比如下面这个代码,大家可以运行一下试试看

#include <stdio.h>
int main()
{
 short s = 2;
 int b = 10;
 printf("%d\n", sizeof(s = b+1));//sizeof中表达式不计算
 printf("s = %d\n", s);
 return 0;
}

5,signed 和 unsigned
C 语⾔使⽤ signed 和 unsigned 关键字修饰 字符型和整型 类型的。signed 关键字,表⽰⼀个类型带有正负号,包含负值;unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。由于这是默认情况,关键字 signed ⼀般都省略不写,但是写了也不算错。

6,数据类型的取值范围

这是一些常用的常量,大家需要多多使用熟悉。
• SCHAR_MIN , SCHAR_MAX :signed char 的最⼩值和最⼤值。
• SHRT_MIN , SHRT_MAX :short 的最⼩值和最⼤值。
• INT_MIN , INT_MAX :int 的最⼩值和最⼤值。
• LONG_MIN , LONG_MAX :long 的最⼩值和最⼤值。
• LLONG_MIN , LLONG_MAX :long long 的最⼩值和最⼤值。
• UCHAR_MAX :unsigned char 的最⼤值。
• USHRT_MAX :unsigned short 的最⼤值。
• UINT_MAX :unsigned int 的最⼤值。
• ULONG_MAX :unsigned long 的最⼤值。
• ULLONG_MAX :unsigned long long 的最⼤值。

变量

C语⾔中把经常变化的值称为变量,不变的值称为常量。变量创建的语法形式是这样的:

data_type name;
| |
| |
数据类型 变量名

int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量

变量在创建的时候就给⼀个初始值,就叫初始化。

int age = 18;
char ch = 'w';
double weight = 48.0;
unsigned int height = 100

2,变量分类

分为
1,全局变量:在⼤括号外部定义的变量就是全局变量,全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的。
2,局部变量:在⼤括号内部定义的变量就是局部变量局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。举一个例子:

#include <stdio.h>
int global = 20;//全局变量
int main()
{
 int local = 28;//局部变量
 printf("%d\n", local);
 printf("%d\n", global);
 return 0;
}

不过大家需要注意,在设置变量的时候需要注意其实当局部变量和全局变量同名的时候,局部变量优先使⽤

3,算术操作符:+、-、*、/、%

在写代码时候,⼀定会涉及到计算。C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符。分别是: + - * / % ,这里加减乘法跟数学中的用法相同,除法需要单独讲解一下。

运算符 / ⽤来完成除法。除号的两端如果是整数,执⾏的是整数除法,得到的结果也是整数

#include <stdio.h>
int main()
{
 float x = 6 / 4;
 int y = 6 / 4;
 printf("%f\n", x); // 输出 1.000000
 printf("%d\n", y); // 输出 1
 return 0;
}

如果执行完上述程序大家会发现结果是1,而不是1.5,这是因为C 语⾔⾥⾯的整数除法是整除,只会返回整数部分,丢弃⼩数部分。如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时 C 语⾔就会进⾏浮点数除法,像下面这样。

#include <stdio.h>
int main()
{
 float x = 6.0 / 4; // 或者写成 6 / 4.0
 printf("%f\n", x); // 输出 1.500000
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值