1,常量
1.1整形常量:1.,2,3,4,5......
-
长整型常量 1L
-
无符号 1u
1.2实数型常量:1.1, 1.2, 1.3......
-
单精度常量:1.1f
-
双精度常量:1.1代码中默认的小数都是双精度
-
0.25 合法
-
.25 合法
-
合法
1.3字符型常量
-
字符型常量都有边界符 ’ ‘
-
’AB‘有效字符只有一个
-
-
转义字符----->通常用在打印的时候调整格式,或者是打印特殊的字符
1.4字符串型常量
-
字符串边界符 ” “
-
每一个字符串后面都有一个结束标记 \0
'A'与"A"有区别前者占用1个字节,后面的占用两个字节,因为后面的A为字符串常量,有看不见的结束标记/0
1.5符号型常量,用一个英语单词去替换一个常量
-
用英语单词 替换一个常量
-
#define PI 3.1415926
2,变量
2.1定义变量的语法:类型 标识符(就是名字)
2.2标识符起名字的规则
-
不能用关键字
-
不能用数字开头,可以用字母或者下划线等等
-
比较经典的命名方式:
-
驼峰命名法 小驼峰:setPos(首字母小写,其他单词开头大写) 大驼峰:SetPos(所有单词开头均用大写开头)
匈牙利命名法 g_setPos(开头有后缀)
2.3,C语言常用类型
-
int 整形
-
float 单精度浮点型
-
double 双精度浮点型
-
char 字符型
-
......
-
占用字节数
char Ikun = 'A'//"="是赋值语句
Ikun = 'B'
TIPs:同一个{ }下面不能定义两个相同的名字
2.4,结合修饰词衍生出来的类型
-
内存上 short 短 long 长
short int Ffei = 0 ;//占用两个字节
long int Wwu = 1L;//占用四个字节
long long TNND = 1LL;//占用八个字节
//以上 int 均可以省略>
-
无符号 unsigned 无符号 只能存正数 可以修饰字符
-
有符号 signed 可以修饰字符
unsigned char DDD = 'A';
本质上不需要符号位,无符号相对于有符号多了一个字节存放内存
-
const :只读,不能被修改下,修改会报错
const int EEE = 1;
int const EEE = 2;
3,printf函数
3.1 原样打印和转义字符调整格式
制表符 \t
按8位输出,不够补空格,补齐8位,超过8位按照16位制表,以此类推
一个 \t 表示8位空格 2个表示16位 通过调整 \t 来调整表格
3.2特殊字符的打印
printf("你这是违法行为"走跟我去自首\n");//会报错,VS无法识别哪个是有效"
printf("你这是违法行为\"走跟我去自首\n");//正确写法:在''前面加\,能打印出来 "
printf("你幸福吗?\\我姓曾\n");//两个\\\ 符号打印出一个\
printf("幸福度200%%\n");//打印一个百分号需要两个%%
3.3打印变量值通过占位符(格式控制字符)
%i---输出一个整型数;
%d---输出一个整型数;
%f---输出一个浮点数;
%e---输出一个浮点数,科学计数法;
%g---输出一个浮点数,当指数小于-4或者大于5,则运用科学计数法,否则正常显示浮点数;
%c---输出一个字符;
%o---输出一个八进制的整型数,前面不带0;
%#o---输出一个八进制的整型数,前面带0;
%x---输出一个十六进制的整型数,前面不带0x;
%#x---输出一个十六进制的整型数,前面带0x, 如果x大写,则显示的时候也是大写。
%u---不带符号的十进制整数。
char hmeduzs = 'E';
int EASYboy = 454 ;
printf("%c,%d\n",hmeduzs,EASYboy);
3.4精度控制(手动制表)
格式:%+a.bf %-a.bf +右对齐 -左对齐 a 输出的宽度 b输出的小数位
printf("%-10.1lf%-10.1lf%-10.1lf%\n",3.1415926,0.618,1.618);//打印数字printf("%-10s%-10s%-10s\n","月","牙","冲","天");//手动制表printf("%-20s%-10s%-10s%-10s%-10s\n","姓名","年龄","性别","身高(m)","爱好");
printf("%-20s%-10d%-10s%-10.2lf%-10s\n","小聋女",18,"女",1.7138,"睡绳绳");
printf("%-20s%-10d%-10s%-10.3lf%-10s\n","迪丽热狗",28,"女",1.7250,"莫得感情");
printf("%-20s%-10d%-10s%-10.4lf%-10s\n","羊蜜",16,"女",1.75250,"玩水");//可以用0补位替代空格
printf("%04d.jpg\n",10);
printf("xxx的地址:%p",&xxx);
4,scanf函数
4.1 scanf的输入("格式控制",变量的地址)
& 取地址符
需要用回车确认输入,输入数据后会出现多了一个换行符\n的情况
打个比方,输入123在stdin缓冲区内是123\n
-
输入单个数据
int NED = 0 ;
printf("NED的地址:%p\n",&NED);
printf("美女请输入一个整数:");
scanf("%d",&NED);
printf("美女输入的整数是:%d",NED);
-
输入多个数据
float AUS = .0f ;
double HUN = .0 ;
printf("请输入两个值:");
scanf("%f%lf",&AUS,&HUN);
scanf("%f,%lf",&AUS,&HUN);//输入的数据也必须带有X,(带逗号,逗号也要区分中英文)X的格式,必须和scanf格式控制里的格式里一样
//浮点数在输入的时候不存在精度控制,不要加转义字符
printf("AUS=%f,HUN=%lf\n",AUS,HUN);//输入数据默认用空格作为间隔,不需要另外打空格,回车也可以作为间隔
4.2字符串输入注意事项
字符串或者字符在输入前做了其他输入,会存在跳过现象
输入完数据后按下回车键,\n转义字符仍然在缓冲区里,会送给字符变量DD,所以要想办法把换行符给清除掉
-
写两次scanf函数
-
getchar() 输入字符的函数
-
while (getchar()!='\n'); //读取字符,直到读取字符结束
4.3 VS中的scanf_s函数(scanf的增强版本)
-
对于数字类输入的函数没有任何改变
-
对于字符或者字符串函数需要增加一个参数,表示尺寸
char key = 0 ;
scanf_s("%c",&key,1);
printf("key=%c\n",key);
......
scanf_s("%d %c%f", &xxx1, &xxx2,1, &xxx3);//输入完需要紧跟尺寸,输入的时候字符在中间,需要在字符前面加空格,否则会把默认的空格给字符
5,getchar和putchar,getch字符专有函数的使用
getchar,专门的字符输出函数,同样需要回车确认
int kee = getchar();
printf("kee=%c",kee);
putchar,输出字符常量或者字符变量
putchar('A');
putchar(kee);
getch,输入字符的函数,不会显示按键的内容,不需要按下回车确认输入内容,游戏里用的居多,VS里需要加个下划线_getch
int key = _getch();
printf("key=%c",key);