c语言之数据类型
#include<stdio.h>
int main(void)
{
float weight, value;
printf("Are you worth your weight in rhodium?\n");
printf("Let's check it out.\n");
printf("Please enter your weight in pounds:");
scanf_s("%f", &weight);
value = 770 * weight * 14.5833;
printf("Your weight in rhodium is worth $%.2f.\n", value);
printf("You are easily worth that!If rhodium prices drop,\n");
printf("eat more to maintain your value.\n");
return 0;
}
int
类型
int是符号的整数,其取值范围依赖于计算机系统
int num_1;
int num_1,num_2;
printf("number:%d",number)//"%d"是要求打印整数,即decimal
八进制和十六进制
#include<stdio.h>
int main(void)
{
int x = 100;
printf("dec = %d;octal = %o:hex = %x\n", x, x, x); //"%o"和"%x"分别显示八进制和十六进制
printf("dec = %d;octal = %#o;hex = %#x\n", x, x, x);//在前面的基础上显示符号
return 0;
}
其他int
数据类型
short int
类型
可能占用比int类型更少的储存空间,用于仅需要小数值的场合以节省空间。
long int
类型
可能占用比int类型更少的储存空间,用于使用大数值的场合。
long long int
类型
可能占用比long类型更多的储存空间,用于使用更大数值的场合。
unsigned int
类型
无符号的int
类型。
还有unsigned long int
、unsigned long long int
等等。
数值溢出
#include<stdio.h>
int main(void)
{
int num_1 = 2147483647;
unsigned int num_2 = 2147483647 * 2;
printf("num_1:%d %d %d",num_1,num_1+1, num_1+2);
printf("num_2:%d %d %d", num_2, num_2 + 1, num_2 + 2);
}
/*
num_1:2147483647 -2147483648 -2147483647
num_2:-1 0 1
*/
//int num_1和unsigned int num_2达到最大值都会溢出,但是int的起始点是-2147483648,而unsigned int的起始点是0
long
常量与long long
常量
如果希望把一个较小的常量作为long
类型对待,可以使用“l”或“L”后缀,同理·还有“ll”(“LL”)、“ull”(“ULL”)等
打印short
、long
、long long
和unsigned
类型数
#include<stdio.h>
int main(void)
{
unsigned int un = 10000;
short end = 200;
long big = 6553710241024;
long long verybig = 123456789012254;
printf("un = %u and not %d\n", un, un); //使用"%u"打印
printf("end = %hd and %d\n", end, end); //使用"%hd"打印
/*"%hd"和"%d"打印的是也一样的,因为int被认为是最有效的整数类型*/
printf("big = %ld and not %d\n", big, big); //使用"%ld"打印
printf("verybig = %lld and not %d\n", verybig, verybig); //使用"%lld"打印
return 0;
}
char
类型
char
类型用于储存字母和标点符号之类的字符,但是在技术上char
却是整数类型,这是因为char类型实际储存的是整数而不是字符。
其中,单引号中的是字符常量;不使用单引号的是一个变量名;使用双引号的是一个字符串。
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 响铃 | 007 |
\b | 退一格 | 008 |
\f | 换页(在cmd里是垃圾字符) | 012 |
\n | 换行 | 010 |
\t | 水平制表符 | 009 |
\r | 回车 | 013 |
\v | 垂直制表符 | 011 |
\\ | 代表一个反斜字符“\” | 092 |
' | 代表一个单引号 | 039 |
" | 代表一个双引号 | 034 |
\0 | 空字符(null) | 000 |
\ddd | 一个八进制任意字符 | 三位八进制 |
\xhh | 一个十六进制任意字符 | 三位十六进制 |
我们也可以使用“\”加上ASCII码来代表相关字符。
打印字符
#include<stdio.h>
int main(void)
{
char ch;
printf("Please enter a character.\n");
scanf_s("%c", &ch); //使用"%c"说明符来打印字符
printf("The code for %c is %d.\n", ch, ch);
return 0;
}
_Bool
类型
用于表示布尔值,即逻辑真(True)和逻辑假(False)
float
、double
和long double
类型
C标准规定,float
类型必须至少能表示6位有效数字,取值范围至少为e-37到e+37;而double
(双精确)的浮点类型和float类型具有相同的最小取值范围要求,但是它至少能表示10位有效数字。
可以省略正号。可以没有小数点(2E5)或指数部分(19.28),但是不能同时没有二者;可以省略纯小数部分(3.E16)或整数部分(.45E-6),但是二者不能同时省略。下面为一些有效的浮点常量:
3.12159
.2
4e16
.8E-5
100.
在默认情况下,编译器将浮点常量当做double类型,比如乘积运算使用双精度,结果被截为正常的float长度,这样会确保数字精度而减慢程序的执行。也可以通过添加f或F后缀使编译器把浮点常量当作float类型,比如2.3f和9.11E9F。1或L后缀使一个数字成为long double
类型,比如54.31和4.32e4L。
打印浮点数
使用“%f”说明符打印十进制记数法的float和double数字,用“%e”打印指数记数法的数字
#include<stdio.h>
int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
long double dip = 5.32e-5;
printf("%f can be written %e\n", aboat, aboat);
printf("%f can be written %e\n", abet, abet);
printf("%f can be written %e\n", dip, dip);
return 0;
}
浮点值的上溢和下溢
当计算结果是一个大得不能表示的数时,会发生上溢,且用printf()函数显示此值为inf或infinity。
当除以一个非常小的数时,通常将是指数部分减小,但是指数已经达到了最小值;所以计算机只好将尾数部分的位进行右移,空出首位二进制,并丢弃最后一位二进制,这就是下溢。
sizeof()
函数
返回数据类型所占的字节大小
#include<stdio.h>
int main(void)
{
printf("Type int has a size of %u bytes.\n", sizeof(int));
printf("Type char has a size of %u bytes.\n", sizeof(char));
printf("Type long has a size of %u bytes.\n", sizeof(long));
printf("Type double has a size of %u bytes.\n", sizeof(double));
return 0;
}
c语言之数据类型的更多相关文章
- 谈谈C语言的数据类型
本文摘要: 本文主要讲述C语言中的数据类型,从基本的数据类型到派生的数据类型,从int ,char ,float double ....到指针,数组,函数,指向指针的指针,指向数组的指针,指向函数的指 ...
- C语言的数据类型
复习之余,做点笔记<C语言之数据类型> 一.整数数据类型 (1)整数数据类型 整数类型 char 字符型变量 1字节(8Bit) short 短整型 2字节(16Bit) i ...
- C语言中数据类型的取值范围
C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...
- 初识 go 语言:数据类型
目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...
- c语言基础:数据类型 分类: iOS学习 c语言基础 2015-06-10 21:43 9人阅读 评论(0) 收藏
C语言基本数据类型大体上分为: 整型 和 浮点型 字节: 计算机中最小的储存单位 1 Byte = 8 bit 整型: int 4 ...
- 「C语言」数据类型及混合运算与类型转换
深入学习C语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换. 本篇文章便是根据<C语言程序设计教程>和在线翻阅资料后整理而出.(练习题将逐步更新) 目录: ...
- Go语言基本数据类型(四)
Go语言基本数据类型主要包含:bool,number,string 布尔类型 go中的布尔类型,只能是 true 和 false,例如:var b bool = true 数字类型 整型 类型 描述 ...
- C语言基本数据类型大小
C语言基本数据类型占用的字节数可以通过如下例子获取: #include<stdio.h> int main(void) { printf("char size=%d \n&quo ...
- 05 C语言的数据类型
C语言的数据类型 在C 中,数据类型是用来声明不同类型的变量或函数的一个广泛的概念.变量的数据类型决定了变量存储占用的空间大小,以及如何去解释存储的位模式. C 中的数据类型可分为以下几大类: 序号 ...
- 如何制作C语言基本数据类型的思维导图
在使用C语言编写程序时,数据类型是一个非常重要的内容,任何一个不被重视的数据错误都会使编译器无法翻译,导致程序报错. 使用思维导图来梳理各个数据类型是一个很有效的记忆方法,接下来就为大家展示一下我用i ...
随机推荐
- MEF 基础简介 三
MEF导出类的方法和属性 首先来说导出属性,因为这个比较简单,和导出类差不多,先来看看代码,主要看我加注释的地方,MusicBook.cs中的代码如下: using System; using Sys ...
- C#_Lamada帮助类
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- Java开发笔记(二十)一维数组的用法
之前介绍的各类变量都是单独声明的,倘若要求定义相同类型的一组变量,则需定义许多同类型的变量,显然耗时耗力且不宜维护.为此,编程语言引入了数组的概念,每个数组都由一组相同类型的数据构成,对外有统一的数组 ...
- Java开发笔记(七十三)常见的程序异常
一个程序开发出来之后,无论是用户还是程序员,都希望它稳定地运行,然而程序毕竟是人写的,人无完人哪能不犯点错误呢?就算事先考虑得天衣无缝,揣着一笔巨款跑去岛国买了栋抗震性能良好的海边别墅,谁料人算不如天 ...
- MATLAB 中 ksvdbox和ompbox 工具箱的安装和使用
下载工具箱 链接: http://www.cs.technion.ac.il/~ronrubin/software.html 下载好工具箱之后, 要将解压后的文件夹添加到MATLAB的安装目录下的to ...
- Web前端:博客美化:一、模板美化
1.选用模板simplememory 2.写css放在 这些会覆盖掉原来的css样式 我是在网上找的css代码二次加工的 : ) /*1.针对simplememory的修改*/ #google_ad_ ...
- Arcpy多线程热力图
起因是这样一段对话,领导:你会用脚本生成热力图图片吗?我:可以研究下.领导:那这个需求就给你了.我:...... 经过一番研究,研究出大概的思路,先将有经纬度的表中的数据筛选出表并生成 ...
- 如何使用apache的ab压力测试小工具传参数
前言: windows下安装的phpstudy软件里集成的apache带了ab工具,所以可以不用单独下载.其他的操作系统下的安装或部署这里就不介绍了! 一. 使用windows的cmd进入apache ...
- 等价路由在路由器和CE交换机上默认的行为是不同的,路由器总是走第一个下一跳,CE交换机是逐包。
结论: 1.在eNSP中实验,路由器和CE交换机对于等价路由的默认转发行为是不同的, 路由器:默认是基于流的转发形态,更准确的来讲,ping两个不同的下一跳,都是走等价路由的第一个路由,不走第二条路由 ...
- TLS / SSL密码强化的建议
TLS / SSL密码强化的建议 传输层安全性(TLS)及其前身安全套接字层(SSL)是广泛使用的协议,旨在通过身份验证,加密和完整性来保护客户端和服务器之间的数据传输安全. 与常见假设相反,TLS ...