目录

常量

整数类型(int)

有符号整数类型

无符号整数类型

整型变量的溢出

字符类型(char)


常量

在C语言源代码中,有些类型的数据在程序运行前已经预先设定好了的。在整个程序不会发生变化的,称为常量。

#include <stdio.h>
#define a 13
int main()
{printf("%d", a);
}

以上类型的都是常见的几个基本类型。

变量

程序中事先声明了的,指定存储类型的内存值可以变化的。程序员通过变量访问或修改内存中的数据,每一个变量代表了一小块内存,而变量是有名字的,程序对变量赋值,可以存储指定类型的称为变量。

#include <studio.h>
int main()
{int a;char b;
}

以上都可以称之为变量。

常量和变量名的定义规范

只能用数字、字母、下滑线组成的

不能用数字开头

不能用其他特殊的符号

不能使用关键字

#include <stdio.h>
int main()
{int _1a; // 成立int _a1; // 成立int a_1; // 成立int a1_; // 成立int 1_a; // 不成立int 1a_; // 不成立int *a_; // 不成立(除了上述说的数字、字母、下滑线组成的都不能成为可命名的变量名)
}

整数类型(int)

和数学一样,在C语言中,整数时没有小数部分的数。例如1和-1都是整数。像1.0就不是整数。

用于存储整数的变量称为整数变量。整数类型简称为整型。

定义整数类型的标识符号为(int)。

整数数据在内存中以二进制形式存储。按照存储的格式不同,整数可分为有符号和无符号整型,分别在int 前面加signed(可忽略)和unsigned来修饰。有符号整数数据在内存中以补码的形式存储。

#include <stdio.h>
int main()
{signed int a = 3; // 有符号整形(signed可以省略)unsigned int b = 3; // 无符号整形(unsigned不可省略)printf("%d\n%d", a, b);
}

有符号整数类型

5种有符号整数类型所占字节数及数据范围

#include <stdio.h>
#include <limits.h> // 里面包含了CHAR_MIN、INT_MIN等宏
int main()
{printf("signed char所占字节数:%d,数据范围:[%d|%d]\n", sizeof(signed char), SCHAR_MIN, SCHAR_MAX);printf("     short所占字节数:%d,数据范围:[%d|%d]\n", sizeof(short), SHRT_MIN, SHRT_MAX);printf("      int所占字节数:%d,数据范围:[%d|%d]\n", sizeof(int), INT_MIN, INT_MAX);printf("    long所占字节数:%d,数据范围:[%d|%d]\n", sizeof(long), LONG_MIN, LONG_MAX);printf("long long所占字节数:%d,数据范围:[%d|%d]\n", sizeof(long long), LLONG_MIN, LLONG_MAX);
}
signed char所占字节数:1,数据范围:[-128|127]
           short所占字节数:2,数据范围:[-32768|32767]
           int所占字节数:4,数据范围:[-2147483648|2147483647]
           long所占字节数:4,数据范围:[-2147483648|2147483647]
long long所占字节数:8,数据范围:[0|-1]

无符号整数类型

·

类型 同义词
_Bool bool(在stdbool.h头文件种)
unsigned char
unsigned int unsigned
unsigned short unsigned short int
unsigned long unsigned long int
unsigned long long unsigned long long int

整型变量的溢出

在整数的算术运算中,可能会发生溢出(overflow)。当运算的结果不在数据类型所能表示范围中,就会发生溢出。

#include <stdio.h>
#include <limits.h>
int main()
{int a, b; // 定义变量a = INT_MAX; // 给变量a赋值一个最大值b = a + 1; // 在a的值上面加个1,超过最大值printf("a: %d\nb:%d", a, b);
}
a: 2147483647
b:-2147483648

运行结果表示,b的值并不是想象中的2147483648。所以写程序处理数据时,要避免数据溢出的现象,很多出你的思维是没有问题,而是数据的定义上会出现问题。所以会出现程序的bug。

溢出的现象是未定义的行为,C语言的标准中并未定义有符号溢出的规则。在编程中有必要注意自己这类问题。

字符类型(char)

char类型用于存储字符(如字母或者标点符号),但是从编译过程来看,其实char类型也是一个标准的整数类型,因为char类型实际上存储的是整型而不是字符。计算机使用的数字编码来处理字符。常用的是ASCII编码。

在ASCII中,存储A实际上存储的是整数65。

标准的ASCII值的范围是1~127。

#include <stdio.h>
int main()
{char ch = 'A';printf("字母A的ASCII的值为:%d", ch);
}
字母A的ASCII的值为:65

案例——字符变量定义并用字符常量赋值。

#include <stdio.h>
int main()
{char a = 'A';char b = 'FATE';int x = 'FATE';char ch = 97;printf("a: %c \nb = %c \nx=%x \nch = %c", a, b, x, ch);
}
a: A
b = E
x=46415445
ch = a

可以从程序上看到,如果字符常量中有多个字符,只有最后8位有效。

C语言——一分钟了解数据类型与变量相关推荐

  1. 嵌入式c语言为什么变量定义在前面,嵌入式C语言数据类型和变量详解

    原标题:嵌入式C语言数据类型和变量详解 一般来讲,标准的C语言类型在嵌入式编译器中是合法的.但由于嵌入式控制器的受限环境.嵌入式c语言的变量和数据类型具有新的特征,这些特征体现在如下方面. 嵌入式C语 ...

  2. 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量

    一.学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. ...

  3. c语言命名规则_C语言的基本数据类型及变量

    学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 了解C语言程序的基本数据类型及概念的使用方法擦 在C语言编程中,系统定 ...

  4. c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量

    变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...

  5. 2020-10-14Go语言数据类型和变量常量

    Go语言数据类型 在Go编程语言中,数据类型用于声明函数和变量 数据类型的出现就是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用有限的的计算机内存 ...

  6. c语言取变量数据类型,C语言数据类型和变量

    <C语言数据类型和变量>由会员分享,可在线阅读,更多相关<C语言数据类型和变量(75页珍藏版)>请在人人文库网上搜索. 1.第3章C数据类型和变量,学习目的和要求: 掌握数据类 ...

  7. c语言中将32位值赋给16位变量,C语言数据类型和变量-参考.ppt

    C语言数据类型和变量-参考 第3章C数据类型和变量 学习目的和要求: 掌握数据类型和变量的基本概念.特点和使用方法 . 熟练掌握算术.赋值.逗号和sizeof运算符与表达式的使用 . 理解并能应用强制 ...

  8. C语言数据类型、变量、常量、作用域和生命周期的概念解释和案例

    目录 一.数据类型 二.变量 变量的命名: 变量的分类: 变量的使用: 三.常量 常量的定义和分类 四.变量作用域和生命周期 作用域: 生命周期: 一.数据类型 当我们去超市购物的时候,看到商品的标价 ...

  9. 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法

    01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍  Java概述.helloworld案例  工 ...

最新文章

  1. 【组队学习】【28期】Datawhale组队学习内容介绍
  2. 计算机原理与接口专科学影像技术专业的,女生影像学专业就业前景好
  3. 解决Android Studio编译后安装apk报错:Error while Installing APK
  4. 请你说明一下ConcurrentHashMap的原理?
  5. java取内核数_在Java中查找内核数
  6. .git文件夹_将Git存储库中的文件夹转换为全新的存储库
  7. 【阿里云OSS】OSS概述
  8. 范数在机器学习中的作用_设计在机器学习中的作用
  9. 在团800运维工作总结之couchbase使用
  10. 小A是支枪,子弹未打光---之手 枪篇
  11. 第三章 python流程控制
  12. Java日志体系(三) jul 配置文件详解,日志示例
  13. log4j 使用记录
  14. 多无人机任务分配与路径规划算法学习(一)
  15. 毛不易 胡同 伴奏 高品质定制纯伴奏
  16. gcc利用-m32编译报错问题处理
  17. 【使用java swing制作简易贪吃蛇游戏】软件实习项目二
  18. 住宅风水决议个人八大运 常鹤鸣
  19. HTTP Analyzer汉化
  20. mimikatz的使用

热门文章

  1. <img>标签中alt属性和title属性的区别
  2. VR云游带你浏览景区,云游的体验和应用介绍!
  3. CVE-2020-11100: HAProxy 内存越界写入漏洞通告
  4. 关于软件工程----一线城市与二三线城市的区别
  5. 机器学习实验 - 朴素贝叶斯分类器
  6. xshell如何使用阿里云秘钥远程连接
  7. 杭州市初级工程师职称评审条件
  8. NB-iot网络的组成架构
  9. IBM蓝色基因超级计算机运行Plan9操作系统
  10. sklearn逻辑回归为什么要归一化