C语⾔数据类型和变量

前言、

什么是数据类型

我们的C语言提供了丰富的数据类型用来描述我们生活中所需要的各种数据。

使用中C语言中整型类型来表示整数,使用字符型类型来表示字符,使用浮点型类型来表示小数。

所谓“类型”其实就是一些数据所拥有的相似特征。编译器知道了这些数的数据类型,就知道怎么去操作这些数据。

一、数据类型的介绍

1、内置类型和自定义类型的概念

在C语言中分为内置类型自定义类型。

那么什么是内置类型呢?

所谓的内置类型就是C语言事先为我们准备好的,我们只管用就好。内置类型也叫基本数据类型,基本数据类型有4种分别是字符型整形浮点型布尔型

内置内类型中还分为无符号类型(unsigned),和有符号类型(signed),其中无符号类型(unsigned)修饰整形字符型的。

signed 关键字,表⽰⼀个类型带有正负号,包含负值;

unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。

小小的提示一下:计算机是以二进制来存储我们的东西的。

那么什么是自定义类型呢?

其实也很见简单,顾名思义就是自己创建自己决定的就是自定义类型

比如:结构体枚举联合体数组。当然这里先不讲。

2、内置类型

字符型char

char这个类型 占1个字节。

unsigned char的取值范围是0 到 255。

signed char 的取值范围是 -128 到 127

要注意的是再C语言中默认是是否带有符号取决于系统。

也就是说unsigned char   不等同于    signed char

输入输出格式为%c

整形int

int这个类型占4个字节

整形还分为长整型long int(占4个字节) 、短整型short int(占2个字节) 、更长的整形

long long int(占8个字节)。

// 短整型
short [ int ]
[ signed ] short [ int ]
unsigned short [ int ]
输入输出格式为%hd。
// 整型
int
[ signed ] int
unsigned int
输入输出格式为%d。
// ⻓整型
long [ int ]
[ signed ] long [ int ]
unsigned long [ int ]
输入输出格式为%ld。
//C99中引⼊ 更⻓的整型
long long [ int ]
[ signed ] long long [ int ]
unsigned long long [ int ]
输入输出格式为%lld。
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。
由于这是默认情况,关键字 signed ⼀般都省略不写,但是写了也不算错。

浮点型float、double

浮点型又分为单精度float(占4个字节)和双精度类型double(占8个字节)。

float
输入输出格式为%f。
double
输入输出格式为%lf。
long double

输入输出格式为%llf。

布尔类型
C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。
C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。
如果要用需要包含#include<stdbool.h>
布尔变量的取值是true,false。
# define true 1
# define true 0

3、sizeof运算符

sizeof是关键字,也是操作符是专门计算数据类型大小的。

sizeof 后面可以跟表达式 ,类型也可以是变量。

关于sizeof操作符后面如果跟的是表达式是不需要加括号的。

sizeof操作符后面的表达式时不会参与与预算的,只会根据表达式的类型得出大小。

sizeof的出来的结果是size_t的类型。

打印sizeof得出来的结果用%zd。

sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给
系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是
unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long ,
对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。
C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返
回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是
unsigned long long 。

上面就是各各类型的占的空间。

二、变量

1、变量的创建

首先,什么是变量,再c语言中我们把经常变化的值叫做变量不变的值我们成为常量

创建变量我们首先要有数据类型,加上一个变量名

创建方式入下:

在创建初期就一个值就叫初始化

2、全局变量和局部变量

在大括号外面创建的变量就叫全局变量

创建方式如下:

全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的。

在大括号内创建的变量就是局部变量

上面就是局部变量的创建了是不是非常简单。

局部变量作用域就没全局变量那么的他只在大括号内有效,出了大括号个就没了。

那么给大家出个疑问就是说当全局变量的变量名,和局部变量的变量名冲突了会优先打印谁呢?

相信大家心中都有答案了!!!

没错就是局部变量

3、算数运算符

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

C语言为了方便我们计算提供了一系列的操作符。

其中有⼀组操作符叫:算术操作符。分别是: + - * / % ,这些操作符都是双⽬操作符。

小知识:(操作符也叫运算符,是不同的翻译,意思是一样的。)

运算符+、- 没啥好讲的,跟数学上都一样。

1、*和/操作符

为啥要用*来代替乘号呢,用为x和ASCLL码表里的字符重合了,所以用*来代替,称号就是用来相乘的,这也和数学上没上区别。

那为啥出号要用/来代替呢?,因为键盘上打不出来那样的符号。

除法操作符跟我们数学上有点不一样,举个例子你就明白了。

列如:3/2等于多少?

有些人用数学的方式去想,这不是1.5吗?

真的等于1.5吗?

答案是1;,其实如果除号两边为整形就会把小数部分舍弃。

但是除号两边只要有一边为浮点数,就会按浮点数来打印。

2、取模操作符

%操作符是求一个两个数相除所剩的余数,%操作符两边必须是整数,如果两边不是整数会报错。

负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
3、赋值操作符
在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。
赋值操作符 = 是⼀个随时可以给变量赋值的操作符。
还可以连续赋值
比如:a = b =10;这样也是合法的。
4、复合赋值符
+= 、-=、*=、/=
就类似于a = a+1这种其他的都一样。
5、前置++和后置++

只要记住口诀就非常好理解。

前置++先+1在运算。

后置++先运算后+1.

6、前置--和后置--

前置--先-1在运算。

后置--先运算后-1.

跟上面一样。

7、占位符

介绍几个常用的,具体的太多了,本人就记了常用的几个

%d:十进制整形

%hd:十进制短整型

%ld:十进制长整型

%u:    无符号整数

%f :⼩数(包含 float 类型和 double 类型)
%p:打印地址
%s:打印字符串
%o:打印八进制整数
%x:打印十六进制整数
%zd:size_t 类型
%e:科学计数法(e小写)
%c:打印字符

三、总结

关于占位符的输入输出掌握一些常用的就行了没必要一次背下来,碰上一个记一个就行。还有前置++,和后置++口诀要牢记,减法相反就行。

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值