C语言数据类型和变量总结

常见的数据类型

介绍

数据类型是C语言提供的用于描述生活中的各种数据

所谓“类型”,即相似的数据所拥有的共同特征,编译器需要先明白我们所输入的数据类型,才能做出我们所理想的操作

总体来说数据类型分为两大类:内置类型自定义类型

接下来将对其做较为具体的介绍,我们最好是能在实际运用中慢慢理解其适用情景

内置类型

       

字符型

  • char            //有符号的(占位符为c)
  1. 可用于存储字符,例如英文字母、字符或标点,如下:
  2. 可用于单个字符的输入与输出,如下:
  3. 声明字符串位数(必须比实际输入字符串多一位,给终止\0留空间),字符串存储输入与输出(占位符为%s)
  • unsigned char //无符号的(占位符为%hhu)

      首先在内存中,char和unsigned char没有什么不同,都是一个一节,唯一的区别是,char的最        高位为符号位,因此char能表示-128~127,unsigned char没有符号位,因此能表示0~255。

     

 整型

         
 短整型
  • short(占位符为%d)
  1. 可用于表示较小的整数,可以节省内存空间
  2. 可用于进行加减乘除运算,可以将short的变量赋给其他short变量此处需要注意的是,不能超过short的范围
  3. 可以用于存储字符数据,因为字符数据也可以表示为整数
  • unsigned short(占位符为%hu)

      同上(unsigned char与char),也不能存储负数

           
整型
  • int(占位符为%d)
  1. 声明变量,存储数据
  2. 声明整数数组,变量,初始化变量
  3. 同样可进行加减乘除,将int的变量赋给其他int变量

   (此处小编就不做例子了,读者可根据上述内容,自行去练习)

  • unsigned int(占位符为%u)
           
长整型
  • long (占位符为%ld)//在处理比较大的整数时,可以使用此类型来存储数据
  • unsigned long(占位符为%lu)
           
更长的整型
  • long long(占位符为%lld) //在处理更大的整数时,用此类型
  • unsigned long long(占位符为%llu)

      

浮点型

  • float(占位符为%f)
  1. 用于存储单精度浮点数,它通常用于需要小数点的数值,例如科学计数法或金融计算
  2. 声明变量与初始化变量
  3. 使用单精度浮点数进行计算
  4. 格式化输入输出数值
  • double(占位符为%lf或%f)
  1. 用于表示双精度浮点数,相较于float,它可以存储更大范围和更高精度的实数值
  2. 声明变量与初始化变量
  3. 使用双精度浮点数进行计算

   (同样,请读者参照上述类似例子自行去练习)

  • long double(占位符为%lf)

     相比于double,此类型更高精度

sizeof操作符(占位符为%zd)

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

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

sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。

1.sizeof(类型)
2.sizeof 表达式


sizeof 后边的表达式是不真实参与运算的,根据表达式的类型得出⼤⼩
sizeof 的计算结果size_t 类型的。

数据类型的长度

每一种数据类型都有自己的长度,使用不同的数据类型创建出长度不同的变量

变量的长度不同,存储的数据范围就有所差异

下面是常见数据类型长度,单位是字节

            

signed和unsigned

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

变量

     

创建

        了解清楚了类型,那我们使用类型是用来做什么的?类型是用来创建变量

         C语言中把经常变化的值称为变量,不变的值称为常量

         如果在创建的时候就给一个初始值,就叫初始化

     

分类

  • 全局变量

       在⼤括号外部定义的变量就是全局变量全局变量的使⽤范围更⼴, 

       整个⼯程中想使⽤,都是有办法使⽤的。

  • 局部变量

       在⼤括号内部定义的变量就是局部变量
       局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。

注意:当全局变量和局部变量相同时,局部变量优先使用

变量存储位置

 ⼀般我们在学习C/C++语⾔的时候,我们会关注
内存中的三个区域:栈区、堆区、静态区
1. 局部变量是放在内存的栈区
2. 全局变量是放在内存的静态区
3. 堆区是⽤来动态内存管理

算术操作符

     +对应加法

     - 对应减法

     * 对应乘法

     / 对应除法

      注意,C语言里面的整数除法整除,只会返回整数部分丢弃小数部分

      如果想得到浮点数的结果,俩个运算数必须至少有一个浮点数

    %表示求模,

      即俩个整数相除的余数值,注意只能用于整数,不能用于浮点数

      负数求模的规则是,结果的正负号由第一个运算数正负号决定

          (即使俩个数均为负号结果也带负号,因为要遵循上述原则)

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

在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给一个值,这叫赋值

赋值操作符 = 是一个随时可以给变量赋值的操作符

     

连续赋值

        

复合赋值符

         我们在写代码时,可能经常对一个数进行自增、自减的操作

          而c语言则提供了更方便的写法

         以上俩图中的变化部分作用相等

          而C语言提供的复合赋值符还有

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

前⾯介绍的操作符都是双⽬操作符,有2个操作数的。

C语⾔中还有⼀些操作符只有⼀个操作数,被称为单⽬操作符。

++、--、+(正)、-(负) 就是单⽬操作符的

++--分别是自增和自减的操作符,而这两个操作符又分为前置和后置

     

前置

       先加减,后使用

     

后置 

       先使用,后加减

(注意不管前置或后置都是加减1,且对于加减数值的本身来说,其作用不管前置后置都一样,都是加或减1)

     

+和- 

       运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错

       运算符 - 是⽤来改变⼀个值的正负号,负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会

       得到负数

强制类型转换

在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如下:

1 (类型)

请看代码:

int a=3.14;
//a的是int类型, 3.14是double类型,两边的类型不⼀致,编译器会报警告


为了消除这个警告,我们可以使⽤强制类型转换:

int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分


俗话说,强扭的⽠不甜,我们使⽤强制类型转换都是万不得已的时候使⽤,如果不需要强制类型转化就能实现代码,这样⾃然更好的

 

写在文章末尾的话

这篇看似没多长的文章小编真的是花了好大心思肝出来的,要到处找资料来完善,里面可能还有一些错误与不足,欢迎各位读者指出,如果喜欢的话,可以点赞加收藏,这是给小编最大的鼓励了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值