C语言的数据类型和变量

1.什么是数据类型

C语言提供了多种数据类型来表述生活中的各种事物。

整数型可以表述整数,字符型可以表述字符,浮点型可以描述小数。

编译器只有知道了数据类型,才能知道该怎么操作数据。

1.1字符型

1.2整形

1.3浮点型

1.4布尔类型

专门表示真假的

使用布尔类型得包含头文件<stdbool.h>

布尔类型变量的取值是:true或者false。

1.5各种数据类型的长度

其实每一种数据类型都有自己的长度,使用不同的数据类型,能够创建出长度不同的变量,同时,变量的长度不同,存储的数据范围就有所差异。

1.5.1 sizeof操作符

如何来计算sizeof的操作符数的类型长度呢?

用sizeof——它既是一个关键字也是一个操作符,它计算出来的单位是字节

sizeof操作符的操作数可以是类型,也可以是变量或者表达式。

sizeof的操作数是表达式是 时,可省略()。

sizeof后边的表达式不参与真实运算,根据表达式的类型来得出大小。

sizeof的计算结果是sizeof_t型的。

1.5.2不同数据类型的长度

输出后

1.5.3 sizeof中表达式不计算

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

  sizeof在代码进行编译的时候,就根据表达式的类型,计算得出答案了。而表达式却要在程序运行期间才能执行。所以在此处表达式并没有发生计算。

2.singed和unsigned

singded和unsinged可以修饰C语言中的字符型和整形类型。

singed关键字表示这个类型带有正负号。

unsinger关键字表示这个类型不带有负号,只能表示非负数。

对于int类型,默认为unsinged int=int,所以unsiged一般省略不写。

signed int;
unsigned int;

在整形中进行unsigned声明的好处是,它可以使同样长度的内存表示的最大整形数值增大一倍。

3.数据类型和取值范围

当我们需要知道某种整数类型的极值时,应尽量使用这些常量。

4.变量

4.1变量的创建

类型是干嘛的?嘿嘿,类型当然是用来创建变量的了!跟数学一样,C语言中我们经常把变化的量称为变量,不变的值称为常量。

前为数据类型,后为变量名。

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

4.2变量的分类

全局变量:在main函数大括号外定义的变量叫做全局变量。可以作用于整个工程。

局部变量:在大括号内定义的变量叫做局部变量。局部变量只能在自己所在的局部范围内使用。

那这时候有的同学就有疑问了,如果全局变量和局部变量名字相同呢?

答案是,当全局变量和局部变量相同时,局部变量优先使用。

那么全局变量和局部变量在内存中存储在哪里呢?

局部变量放在内存的栈区,局部变量放在内存的静态区。

当然了内存还有一个区,叫做堆区,堆区是用来动态内存管理的。

5.算数操作符:+、-、*、/、%、

我们写代码的时候一定会涉及到运算。

而C语言为我们提供了一些算数操作符,以便满足我们的运算需求,+-*/%这些都是双目操作符。

5.1+与-

+是加号

-是减号

因为位于加号与减号两端的数是它们的操作数,所以这种操作符也叫双目操作符。

5.2 *

5.3 /

为什么float类型计算出的值为1.000000呢?因为C语言里面的整数除法是整除,只会返回整数部分,丢弃小数部分。

6.赋值操作符:=和复合赋值

6.1连续赋值

操作符也可以连续赋值

如下:

int a = 3;
int b = 4;
int c = 5;
c = b = a + 5;//连续赋值,从左到右依次赋值

虽然可行,但九漓不建议这样写。

6.2复合赋值符

在写代码时,我们经常肯对一个数进行自增、自减的操作,如下代码:

int a = 9;
a = a + 1;
a = a - 1;

不仅仅可以这样写,九漓这里还有更加方便的写法:

int a = 10;
a += 1;
a -= 1;

C语言中提供了复合赋值符,方便我们写代码,这些赋值符有:

//复合赋值符
+= -=
*= /= %=
<<= >>= &= ^= |=

7.单目操作符:++、--、+、-

7.1++和--

++是一种自增操作符,又分为前置++和后置++,--是一种自减的操作符,也分为前置--和后置--。

7.1.1

前置++

前置++,先加1后使用。a原来是10,++a使a先变成11,然后赋值给b。

7.1.2

后置++

后置++,先使用后加1。a原来是10,先赋值给b,这一步进行完毕之后,a再+1,然后a的值变成了11。

7.1.3

前置--,与后置--。

前置减减就是先减1后使用。

后置减减就是先使用后减1。

7.2+和- 单目操作符

int a = +10;等价于int a = 10;

这是因为运算符+对正负值都没有影响,是一个可以完全省略的操作符。

而-号可以使整数变为负数,使负数变为整数。

8.强制类型转换

请看图

 前为整形,后为double型,此时此刻运行的话,编译器会给出警告。

此时我们可以这样做。

 这样就是强制类型转换,意思使只取1.64的整数部分。

这是C语言的强制类型转化规则,只能由字节小的强制转化为字节大的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值