C语言——一分钟了解数据类型与变量
目录
常量
整数类型(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语言——一分钟了解数据类型与变量相关推荐
- 嵌入式c语言为什么变量定义在前面,嵌入式C语言数据类型和变量详解
原标题:嵌入式C语言数据类型和变量详解 一般来讲,标准的C语言类型在嵌入式编译器中是合法的.但由于嵌入式控制器的受限环境.嵌入式c语言的变量和数据类型具有新的特征,这些特征体现在如下方面. 嵌入式C语 ...
- 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量
一.学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. ...
- c语言命名规则_C语言的基本数据类型及变量
学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 了解C语言程序的基本数据类型及概念的使用方法擦 在C语言编程中,系统定 ...
- c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量
变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...
- 2020-10-14Go语言数据类型和变量常量
Go语言数据类型 在Go编程语言中,数据类型用于声明函数和变量 数据类型的出现就是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用有限的的计算机内存 ...
- c语言取变量数据类型,C语言数据类型和变量
<C语言数据类型和变量>由会员分享,可在线阅读,更多相关<C语言数据类型和变量(75页珍藏版)>请在人人文库网上搜索. 1.第3章C数据类型和变量,学习目的和要求: 掌握数据类 ...
- c语言中将32位值赋给16位变量,C语言数据类型和变量-参考.ppt
C语言数据类型和变量-参考 第3章C数据类型和变量 学习目的和要求: 掌握数据类型和变量的基本概念.特点和使用方法 . 熟练掌握算术.赋值.逗号和sizeof运算符与表达式的使用 . 理解并能应用强制 ...
- C语言数据类型、变量、常量、作用域和生命周期的概念解释和案例
目录 一.数据类型 二.变量 变量的命名: 变量的分类: 变量的使用: 三.常量 常量的定义和分类 四.变量作用域和生命周期 作用域: 生命周期: 一.数据类型 当我们去超市购物的时候,看到商品的标价 ...
- 笔记整理1----Java语言基础(一)01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法
01 变量与数据类型+02 运算符与表达式+03 条件判断与循环语句+04 JAVA数组+05 函数与方法 第01天 java基础知识 今日内容介绍 Java概述.helloworld案例 工 ...
最新文章
- 【组队学习】【28期】Datawhale组队学习内容介绍
- 计算机原理与接口专科学影像技术专业的,女生影像学专业就业前景好
- 解决Android Studio编译后安装apk报错:Error while Installing APK
- 请你说明一下ConcurrentHashMap的原理?
- java取内核数_在Java中查找内核数
- .git文件夹_将Git存储库中的文件夹转换为全新的存储库
- 【阿里云OSS】OSS概述
- 范数在机器学习中的作用_设计在机器学习中的作用
- 在团800运维工作总结之couchbase使用
- 小A是支枪,子弹未打光---之手 枪篇
- 第三章 python流程控制
- Java日志体系(三) jul 配置文件详解,日志示例
- log4j 使用记录
- 多无人机任务分配与路径规划算法学习(一)
- 毛不易 胡同 伴奏 高品质定制纯伴奏
- gcc利用-m32编译报错问题处理
- 【使用java swing制作简易贪吃蛇游戏】软件实习项目二
- 住宅风水决议个人八大运 常鹤鸣
- HTTP Analyzer汉化
- mimikatz的使用