一:数据类型
1:整数类型
包括整型,长整型。短整型。区别在于,采用不同位数的二进制编码表示,占用不同的存储空间,表示不同的数值范围,32位操作系统
类型说明符 | 数的范围 | 字节数 |
---|---|---|
int(整型) | -2147483648 到2147483647 | 4 |
unsigned int(无符号整型) | 0~65535,即 0~(2-1) | 4 |
short int(短整型) | -32768~32767,即 -2~(2-1) | 2 |
unsigned short int(无符号短整型) | 0~65535,即 0~(2-1) | 2 |
long int(长整型) | -2147483648~2147483647,即 -2~(2-1) | 4 |
unsigned long(无符号长整型) | 0~4294967295,即0~(2-1) | 4 |
原码
反码
补码
对应的是%d
2:实数类型
实数类型数据又称为实数,实型数据或浮点数,指的是带有小数部分的非整数数值
c语言提供了2种表示实数的类型,单精度型(float)和双精度型(double)
float占4个字节,double占8个字节,double比float的数据精确的多
float对应的%f,double对应的%lf
3:字符型(char)
分为单个字符和字符串
'aaa' 就是单个字符
"aaaa" 就是字符串
字符是以ASCII形式存储的,字符'A'的ASCII对应的十进制数65,a:表示97,之间相差32
二:常量和变量
1:常量
就是值不能改变的为常量
1:整型常量
整型常量就是整数
可以用十进制,八进制,16进制
2:实型常量
又被称为浮点数,2种表示方法
(1)小数形式,由数字0-9和小数点组成,必须要有小数点 4.5 -45.232
(2)指数形式,由十进制加阶码,阶码就是e,或者E,e(E)前面必须要有数字,后面必须是整数
合法的:
2.3E5,5.6E-3,
不合法的:
123(没有小数点),E4(E之前没有数字),23.-E3(负号的位置不对),2.7E(无阶码)
3:字符常量
字符常量,是一对单引号表示的字符,‘5’就是字符常量
(1)只能用单引号标识,不能使用双引号
(2)字符常量只能是单个字符,不能是多个字符
(3)字符可以是字符集中的任意字符
大部分采用ASCII字符集
转义字符的含义
\n | 换行 | 10(ASCII) |
\t | 制表 | 9 |
\b | 退格 | 8 |
\0 | 空字符 | 0 |
\\ | 反斜杠字符 | 92 |
\' | 单引号字符 | 39 |
\'' | 双引号字符 | 34 |
\ddd | 1~3位八进制代表字符 | |
\xhh | 1~2位十六进制代表的字符 |
就是里面对应着某个数字
4:字符串常量
字符串常量,字符串的结束符为\0看不到,但是是存在的,遇到这个\0就结束
"a"和'a'是2个不同的常量'a'字符a代表的是个数字,而"a"代表的是a和\0,所以的话,2个事不同的常量
使用strlen函数来计算字符串的长度(不计算到\0)
#include <stdio.h> int main() { char arr1[] = "adada"; ###里面有\0 char arr2[] = {'a','b','c'}; ###主动存放变量,没有\0,就会打印其它的地方(就是存储空间),遇到\0就结束 printf("%s\n",arr1); int len = strlen(arr1); printf("长度是%d\n",len); printf("%s\n",arr2); int len1 = strlen(arr2); printf("长度是%d\n",len1); } #这个数组就是arr1[0] = 'a'等
5:define和const定义的常量(符号常量)
1、define定义常量
写在外面主函数的外面,并且必须是大写的
#define MAX 10 #include <stdio.h> int main() { printf("%d",MAX); }
2、const定义变量
修饰的变量,本质是变量,但是不能直接去修改,所以是具有常量的属性的
可以用数组来判断,因为数组的话,里面必须是常来那个,不能是变量,写在主函数里面
#include <stdio.h> int main() { const int a = 10; printf("%d",a); } #下面的写法是错误的 #include <stdio.h> int main() { const int a = 10; a = 20; printf("%d",a); }
利用数组证明:
6:枚举常量
2:变量
1:局部变量
局部变量,就是在{}里面所定义的变量,只能在里面生效,在其他位置没有用
案例
#include <stdio.h> int main() { { int a = 100; printf("%d\n",a); return 0; } //printf("%d",a); ##{}嵌套的话,里面的定义的,就只能在里面使用 如果在第一层的{}里面定义的话,就能直接在里面使用 }
2:全局变量
就是定义在{}外面的变量,就能在全局的使用这个值,不受限制
案例
int a = 100; #include <stdio.h> int main() { { printf("%d\n",a); #里面也能使用 } printf("%d\n",a); ##外面也能使用 }
3:变量的作用域
局部变量的作用域:就是在那定义的就只能在这个范围内使用
全局变量的作用域:就是在全局定义的话,就能在全局的范围内使用
4:变量的生命周期
局部变量的生命周期:就是代码执行到了那个范围的的话,就生效,离开了这个范围的话代码就自动的销毁
全局变量的生命周期:程序执行后,就生效,程序结束后,就销毁,就相等于全局变量的生命周期等于程序的生命周期
3:返回的值用什么来替代
%d 打印整型
%c 打印字符
%s 打印字符串
%f 打印float类型数据
%lf 打印double类型的数据
%zu 打印sizeof的返回值
char表示字符常量和字符串常量
标签:字符,语言,int,基础,整型,printf,变量,常量 From: https://www.cnblogs.com/qm77/p/18071498