C语言之《变量和数据类型和输入输出》

干活分享

我现在重新拾起我大一学过的不懂皮毛的C语言,我现在重新学,希望学得更加的扎实,把基础打牢,我现在会不定时的分享我学C语言路上总结归纳的一些学习资料,用博客记录下来,希望方便自己的同时也给大家带来收获!可以收藏哦!C语言之《变量和数据类型和输入输出》

变量和数据类型和输入输出

重点:基本数据类型和变量的概念,输入输出的使用

数据要使用首先要放到内存中,内存中是由上亿个小元器件构成,每个小元器件就是一段小电路,它的通断代表着1和0,也就是一位也叫做1bit(比特),我们把8个比特放一起称做1byte(字节)。字节是计算机存储的最小单位。
单位换算:
1Byte(字节) = 8 Bit
1KB(千字节) = 1024Byte = 210Byte
1MB(兆) = 1024KB = 210KB
1GB(吉) = 1024MB = 210MB
变量:内存中的一小块
变量的定义:
数据类型 变量名;(变量名必须是合法的标识符)
**数据类型:**是对变量所用内存以及存储方式的一种说明。
标识符:用户编程时给相关事物所起的名字。以字母或下划线开头 后面跟0个或多个字母数字下划线。标识符不能是关键字。
关键字:
关键字是C语言保留的有特殊含义的一些单词。这些关键字在C语言编程中只能用于固定的地方,不能作其它用途使用。关键字在VS中以蓝色显示。

C语言之《变量和数据类型和输入输出》

C语言32个关键字

C语言之《变量和数据类型和输入输出》
C语言数据类型:
C语言数据类型分为四大类,分别为:
基本类型、构造类型、指针类型、空类型
C语言之《变量和数据类型和输入输出》

我们今天要学习的就是基本数据类型:整型/浮点型/字符类型
C语言之《变量和数据类型和输入输出》
C语言之《变量和数据类型和输入输出》
求长度 可以用sizeof()
例:printf(“%d”,sizeof(int));
//得到的就是一个int类型的数据在内存中所占据的空间大小

变量的定义:
数据类型 变量名;
例:
单个变量定义 int a;
多个变量连续定义 char a,b,c;
定义变量的同时赋值(初始化) double a=9.99;
无符号整型 :
c语言规定把变量所占内存的最高位作符号位:无符号就可以表示更多的数
无符号关键字:unsigned
例 :
unsigned int a;
无符号短整型 : unsigned short a;
无符号长整型 : unsigned long a;
无符号类型的数据的最大正数的范围是普通类型的两倍,因为它没有负数,而普通的数据类型是有负数的。
举例:unsigned int a;
赋值的时候不能是负数,如果是负数,那么输出的时候会是一个很大的正数。
unsigned int b=-1;
printf("%u\n", b);//会输出一个很大的正数
unsigned类型都要用%u输出无符号类型的数据
整型数据的表示方法:
十进制数()、
二进制数(0b
)、
八进制数(0
*****)、
十六进制数(0x******)。

变量赋值: 将某一数值给与一个变量的过程称之为赋值,在定义变量的同时赋值叫做赋初值也叫做初始化。

1. 初始化

(1) 定义整型变量时传递数据 :
举例:int a = 1;
//因为每定义了一个变量,都会在内存中分配一个空间,去存放这个变量的数据
//定义了一个int类型的数据,它的名字叫做a,程序在内存中给a分配了一个空间存放数据,空间存放的内容是整数1,也就是说把1赋值给了变量a,1是变量a的值。

2. 赋值

(1)先定义整型变量,再传递数据:
举例:int a;//定义一个int类型的变量a,
a = 1;//给变量a进行数据的赋值
(2) 用scanf函数给整数变量赋值
举例:
int a;
scanf(“%d”,&a);//数据类型和格式占位符一定要对应,比如int就是%d
//Scanf语句的作用:&,取地址符号,得到某个变量在内存中的地址。在内存中找到数据a的地址,从键盘输入一个数据,存放到a的地址里面保存

3. 输出

举例:
int a=4;
printf(“%d”,a);//printf函数把变量a的值输出到窗口

short b;
scanf(“%hd”,&d);//scanf给short类型的数据b赋值
printf(“%hd”,d);//printf输出short类型的数据b
Scanf输入多个变量,变量和格式占位符对应
scanf(“%d %hd”,&a,&d);
printf输出多个变量,变量和格式占位符对应
printf(“%d %hd”,a,b);//printf输出short类型的数据b

浮点型(用来表示小数,程序里面的常量小数默认为double类型):
float(单精度浮点型):占4个字节。 格式占位符:%f
double(双精度):占8个字节。 格式占位符:%lf
long double(扩展性精度):占8个字节。 格式占位符:%Lf

精度

float和double的精度是由尾数的位数来决定的。表示这个数据能够精准到小数点后多少位。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。
float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

初始化:

float a = 0.213;//定义一个浮点类型变量a赋值为0.213
赋值:
float a;
a=1.234;//赋值改变,a此时值为1.234
注:C语言中,默认自动将单精度浮点型数据转换为双精度浮点型数据进行处理。
scanf(“%f”,&a);//scanf给float类型的变量a赋值
输出:
格式占位符为%.nlf(n为整数),表示输出到小数点后多少位数
printf("%.5lf", a);//表示会输出到小数点后5位数

字符型:char:占1个字节
既可以表示小整数(-128-127),又可以表示字符(字符用’'界定)。
每一个字符都对应一个整数,称为ASCLL码值。

字符型变量的定义:char name;
(数据长度1字节,可表示整型数范围为-128~127)
无符号字符型变量的定义 : unsigned char name; (数据长度1字节,可表示整型数范围为0~255)
字符型数据的表示方法: 单引号表示法’a’(单引号中包含一个字符比如:‘a’、‘B’)、整型数表示法。比如:98(‘b’),65(‘A’)。整数为asc码里面字符对应的十进制。

字符类型变量的赋值和初始化:
初始化: char a=’a’;//把字符’a’初始化赋值给变量a
赋值:char b;
b=’d’;//定义一个字符变量b,然后给b赋值为字符‘d’
Scanf(“%c”,&b);//scanf给字符变量b赋值
输出:
Printf(“%c\n”,b);//printf输出字符b,末尾换行

Char类型的扩展

1.字符类型参与运算时,提升为整型
2.大小写的切换:大写-小写:ch + (‘a’ - ‘A’)
3.数字与字符的切换:0 -‘0’:num + (‘0’ - 0)
4.转义字符:\字符:占1个字节。
\八进制:\最多跟三位:\012 \12
\十六进制:\x最多跟两位;\x1a;(0不算一位)

sizeof(类型/变量名/字符串):求字节数

输入:scanf
输出:printf
int a;//定义一个int类型的变量名字叫a
scanf("%d", &a);//从键盘输入一个数字,按下回车,赋值给a,%d为十进制数的格式占位符,&a,是取a的地址,把从键盘输入的数据存放在变量a的那个地址里面
printf("%d", a);//输出a的值,%d输出十进制,每一个格式占位符会对应一个数据,如果不传入数据,则系统会给个乱码或者0

常用的格式占位符
%d 对应十进制整数
%x/%X 对应十六进制整数
%o 对应八进制整数
%f float浮点数
%lf double双精度浮点数
%c 对应单个字符
%s对应字符串

希望这些资料能帮助和我一样的小白能把基础打好!