C语言数据类型

本文介绍了C++中的基本数据类型,包括整数类型(如int、short、long)、浮点数类型(float、double),以及字符类型和无符号类型。讲解了sizeof关键字用于获取内存大小,以及字符类型的特点和转义字符。同时,提到了复合数据类型和scanf函数的基本用法。
摘要由CSDN通过智能技术生成

C++学习之路【1】:标C数据结构和算法

C语言数据类型

数据类型总览

数据类型功能:计算机将来分配内存大小
int - 计算机会分配4字节内存

数据类型含义数据范围
char1字节整数-128~127
unsigned char(无符号)1字节整数0~255
short2字节整数-32768~32767
unsigned short(无符号)2字节整数0~65535
long4字节整数-2^31 ~ 2^31-1
unsigned long(无符号)4字节整数0~2^32-1
int4字节整数-2^31 ~ 2^31-1
unsigned int(无符号)4字节整数0~2^32-1
float4字节浮点数/
double8字节浮点数(双精度)/

int和long类型在不同的机器上对应的字节数不同(笔试题中一般认为在32位系统)

8位系统32位系统64位系统
int2字节4字节4字节
long4字节4字节8字节

sizeof 关键字

利用sizeof关键字获取变量或者数据类型对应的内存空间大小
语法格式: sizeof(变量名/数据类型/表达式);
计算机内存的大小以字节为单位

int a = 1;
printf("%lu, %lu\n", sizeof(a), sizeof(int));  //%lu为sizeof占位符

在sizeof内赋值运算——无效化

int var = 100;
printf("sizeof(var) = %lu\n", sizeof(var)); //4
printf("%lu, %lu\n", sizeof(15), sizeof(5+5));  //4
sizeof(var = 520);
printf("var = %lu\n", var);  //100

字符类型

数据类型:char / unsigned char
字符类型的名称是char
字符类型里包含256个不同的整数,每个整数对应一个字符(如:‘y’,‘%’等)
整数所表示的范围为:-128 ~ 127
这些数字和字符之间是可以相互替换的:每一个字符 — 对应着一个整数
存储‘a’ — 存储到内存 — 1字节 — 将字符对应的整数存起来
ASCII码表里列出所有整数和字符之间的对应关系:
‘a’ —— 97
‘A’ —— 65
‘0’ —— 48

#include<stdio.h>
int main(void){
	char c = 'a';
	printf("c = %c\n", c); //a
	print("c = %hhd\n", c); //97
	
	c = 98; //将数字98存储到变量c表示的存储区中
	printf("c = %c\n", c); //b
	print("c = %hhd\n", c); //98

	c = c + 1;  // 98+1=99; c = 99
	printf("c = %c\n", c); //c
	print("c = %hhd\n", c); //99
	
	return 0;
}

字符类型–转义字符

字面值含义
‘\a’响铃
‘\b’退格
‘\t’水平制表
‘\n’换行
‘\v’垂直制表
‘\f’换页
‘\r’回车
‘\‘’
‘\“’
‘\’\
‘%%’%
#include<stdio.h>
int main(void){
	printf("abcdef\n");  //换行
	printf("abc\bdef\n");  //退格:abdef
	printf("abc\tdef\n");  //水平制表:abc	def(tab键效果)
	printf("abc\rdef\n");  //回车:def(回到行首依次替换显示)
	printf("\'abcdef\'\n");  //单引号:'abcdef'
	printf("\"abcdef\"\n");  //双引号:"abcdef"
	printf("abc\\def\n");  //斜杠:abc\def
	printf("%%abcdef\n");  //百分号:%abcdef
	
	return 0;
}

整数类型

整数类型包含:short 、long、int;unsigned short、unsigned long、unsigned int。
short a = 100;== short int a =100;
unsigned short a = 100;== unsigned short int a =100;

long a = 100;== long int a =100;
unsigned long a = 100;== unsigned long int a =100;
实际short和long是用来修饰int,平时可省略int,整数类型实际只有int一种。

浮点数类型

浮点数类型包含:float、double
程序里带小数点的数字默认是双精度浮点类型的 6.7
带小数点的数字后面加字符f表示数字是单精度浮点类型的 6.7f

占位符

类型格式化标记符(占位符)大小
char%c/%hhd1字节
unsigned char%c/%hhd1字节
int%d4字节
unsigned int%u4字节
short%hd2字节(h = half)
unsigned short%hu2字节
long%ld4/8字节(l = long)
unsigned long%lu4/8字节
float%f/%g4字节
double%lf/%lg8字节

复合数据类型

c语言里可以创建新的数据类型
这些新的数据类型叫做复合数据类型
符合数据类型需要先创建出来然后才能使用

scanf函数

scanf标准函数可以在程序运行的时候从键盘得到用户临时输入的数字 - scan format
为了使用这个标准函数需要包含stdio.h头文件
从键盘获取数字后需要存储到内存的存储区中
在scanf函数调用语句里必须使用【存储区的地址】表示存储区:&变量名/数组名/指针
在scanf函数调用语句里需要使用【占位符】表示存储区的类型

int a = 0;
scanf("%d", &a);

可以在一条scanf函数调用语句里获得多个数字,此时需要多个占位符和多个存储区(占位符的个数和存储区的个数要相等)

int a = 0, b = 0;
scanf("%d%d", &a, &b);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值