C/C++学习笔记--数据类型

Date 2020-09-19

数据类型

数据类型功能:
让编译器预算出将来这个变量要分配的内存大小,将来就可以知道要访问操作内存多大的操作
C语言程序12类基本数据类型

(GCC默认规定的):
C语言基本数据类型
切记:①unsigned int 和 unsigned long 对于GCC编译器来说不同
②对于32/64位操作系统,unsigned int 都是4字节
③对于32位系统 unsigned long 是4字节, 对于 64位操作系统 unsigned long 是8字节
利用 sizeof 关键字可以获取变量的或者数据类型分配的大小

/*
date 2020-09-19
sizeof求数据类型分配内存
*/
#include <stdio.h>
int main (int argc char* argv[]) {
	char a = 1;
	unsigned char b = 2;
	printf("sizeof(a) = %d,sizeof(char) = %d\n",sizeof(a),sizeof(char));
	printf("sizeof(b) = %d,sizeof(unsigned char) = %d\n",sizeof(b),sizeof(char unsigned));
	// sizeof 赋值无效
	int i = 520;
	sizeof(i = 250);
	printf("i = %d\n",i); // 结果依旧为520
	return 0;
}
数据类型 char 和 usigned char
字符常量概念 单引号括起来表示 ,其值固定不变
字符变量 (用char 或者 unsigned char 定义的变量,分配1字节内存)存储的数据本质是字符常量对应的整数   --- ASCII 码

ASCII对应表

字符变量打印输出占位符 %c (字节形式) 或者%d(整数形式)
/*
date 2020-09-19
字符类型数据演示
*/
#include <stdio.h>
int main (int argc,char* argv[]) {
	char var = 'L';
	printf("按字符型输出%c,按整型输出%d\n",var,var);
	char var1 = 107;
	printf("%c\n",var1);
	printf("var - var1 = %d\n",val);
	return 0;
}
转义字符
*%%   -- >  输出一个% 
\n  光标移至下一行行首
 \r 光标移动至当前行行首(会覆盖当前行内容)
\\t  -- 输出一个TAB 键 
\\ -->  输出一个 \
\' -- > 输出一个 '*
// printf("abc\rdef\n\t123\\efg\'mn\"hjk%%\n");
整数类型
整形数据类型关键字 int 可代表两字节或4字节数据
	short
	unsigned short
	long 
	unsigned long 
	long long
	unsigned long long 
	
int 类型 的六种形式
① 形式:
		 short a = 250;
		 short int a = 250;
②形式:
		unsigned short a = 250;
		unsigned short int a = 250;
③形式:
		long a = 250;
	    long int a = 250;
④形式:
		unsigned long a =  250;
		unsigned long int a = 250;
⑤形式:
		int a = 250;
⑥形式
		unsigned int a = 250;
整形常数
100 :GCC 默认为 int 类型
100L:GCC 默认为 long类型
100LL:GCC 默认为 longlong类型
100u:GCC 默认为unsigned 类型
100UL:GCC 默认为 unsigned long 类型
作用:用于数据类型的转换
浮点数 double 和 float
1.23: GCC 默认为 double 类型;
1.23f:GCC 默认为 float 类型;
注意:浮点数在计算机中是一个无限趋近的值,例如 :1.2300000001 是无限趋近于1.23
	***CPU对浮点数的运算极慢***

数据类型和对应的占位符
对应关系

/*
date 2020-09-20
数据类型和占位符操作演示
*/
#include <stdio.h>
int main (int argc,char* argv[])
{
	char a = 97;
	unsigned char b = 'B';
	printf("%c,%hhd\n",a,a);
	printf("%c,%hhu\n",b,b);
	// 浮点数
	float c = 25.37;
	double d = 25.37;
	printf("%f,%g\n",c,c);
	printf("%lf,%lg\n",d,d);
	return 0;
}
进制转换
①计算机中的数据数字都是在硬件内存中进行储存,并且这些数据数字都是以二进制的形式储存
②计算机把内存中每个字节分成8段 ,每段只记录0和1 每段简称 位 比特 bit (b) 
内存中最小储存单元
1 Byte = 8bit
2进制和10进制之间的转换
负数的10进制和2进制之间转换(需借助相反数 取反加1)
eg:(前提必须是 char 类型)
 -25     ----- 25   ------ 0001 1001  ------ 1110 0110 +1  ----- 1110 0111
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值