算法笔记系列:2.1基本数据类型

2.1.1 变量的定义

  • 定义格式: 变量类型 变量名
  • 条件: 不能是C语言标识符;变量第一个字母必须是字母或下划线;区分大小写

2.1.2 变量类型

  • 整型

    • 整型 int 占用 32bit (32位),即 4 Byte 字节,范围在 − 2 31 ∼ 2 31 − 1 -2^{31} \thicksim 2^{31}-1 2312311 大概范围在绝对值 1 0 9 10^9 109以内。

    • 长整形 long long 占用64bit,即8字节,取值范围在 − 2 63 ∼ 2 63 − 1 -2^{63} \thicksim 2^{63}-1 2632631 即当提示整数取值会超过 1 0 10 10^{10} 1010时,就用 long long 型来存储。当赋予超过int范围的初值时,需要在后面加上 LL,否则会编译错误。

    • unsigned 无符号型 在类型前声明表示无符号,占用位数和原先相同,区别在于没有负数范围,取值范围从0开始。

  • 浮点型

    • 单精度 float 占用32bit,存放范围为 − 2 128 ∼ 2 128 -2^{128}\thicksim2^{128} 21282128,有效精度只有6-7位

    • 双精度 double 占用64bit,存放浮点数范围 − 2 1024 ∼ 2 1024 -2^{1024}\thicksim2^{1024} 2102421024,其有效精度有15-16位

    • 对于浮点型来说,一般都用double存储

  • 字符型

    • 字符变量和字符常量 通过char声明,区别在于是否使用单引号标注起来,例如:char c = ‘c’,其中c为字符变量,'c’为字符常量。C语言中,字符常量使用ASCII码统一编码,小写字母比大写字母的ASCII值大32。%c是char型的输出格式。

    • 转义字符 常用的\n 表示换行;\0表示空字符NULL,不是空格,其ASCII码为0

    • 字符串常量 C语言中只有字符数组的方式,C++中有string类型可以存储。字符串常量由双引号标记,使用%s的格式输出

      #include<stdio.h>
      int main(){
          char str1[25]="wo ai de ren bu ai wo";
          char str2[25]="so sad a story it is.";
          printf("%s, %s",str1,str2);
          return 0;
      }
      
      输出:
      wo ai de ren bu ai wo, so sad a story it is.
      
      
    • 布尔型 bool 布尔型在C++中可以直接使用,在C语言中必须添加stdbool.h头文件才行。取值为true和false。值得注意的是,整型常量赋值给布尔型变量时会自动转换为true(非零)或者false(零),但是在存储时,是将它们用1和0存储,即当用%d输出布尔型时,true输出为1,false输出为0

2.1.3 强制类型转换

格式如下:(新类型名)变量名

2.1.4 符号常量和const常量

本质上是替换,即用一个标识符来替代常量,两种方式格式如下:

  • # define 标识符 常量 (注意末尾不加分号)

  • const 数据类型 变量名=常量

一般推荐const的写法

2.1.5 运算符

  • 算术运算符

    • / 除法运算符 需要注意的是,当被除数跟除数都是整型时,并不会得到一个double浮点型的数,而是直接舍去小数部分

    • % 取模运算符 取前面的数除以后面的数得到的余数

    • 自增运算符 主要注意 i++ 和 ++i的区别。i++ 是先使用i再将i加1,而++i则是先将i加1再使用i

  • 关系运算符

  • 逻辑运算符
    常用的有三种:&& 与;|| 或;!非;

  • 条件运算符
    ( ? : )是C语言中唯一的三目运算符,格式如下:

    A? B: C 含义是如果A为真,那么执行并返回B的结果,如果A为假,那么执行并返回C的结果

  • 位运算符

运算符含义语法效果
<<左移a<<x整数a按二进制位左移x位
>>右移a>>x整数a按二进制位右移x位
&位与a&b整数a和b按二进制对齐,按位进行与运算(除了11得1,其余均为0)
|位或a|b整数a和b按二进制对齐,按位进行或运算(除了00得0,其余均为1)
^位异或a^b整数a和b按二进制对齐,按位进行异或运算(相同为0,不同为1)
~位取反~a整数a的二进制的每一位进行0变、1变0的操作
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值