1.数据类型介绍
相似数据拥有的共同特征
1.1字符
char
unsigned char
1.2整型
短整short
整型int
long
long long
1.3浮点型
单精度浮点型float
双精度浮点型double
long double
1.4布尔类型
专门表示真假-Bool
变量取值true or false
2.signed和unsigned
用于修饰字符型和整型
singed表示带有正负号
unsigned表示0或正数
int=signed int
3.数据类型的取值范围
4.变量
4.1创建
类型是用来创造变量的
tape name
初始化即给变量初始赋值=?
int qi=6
4.2分类
全局变量(大括号外)
局部变量(大括号内)
变量同名,局部变量优先
5.算术操作符:+、-、*、/、%
/
#include<stdio.h>
int main()
{
int n = 8 / 3;
printf("%d\n", n);
return 0;
}在这里插入代码片
```8\3 商2余2 int为整型显示商
```c
#include<stdio.h>
int main()
{
int n = 7.00 / 4.00;
float m = 7.00 / 4.00;
printf("%f\n", m);//1.750000
printf("%d\n", n);//1
return 0;
}
%求模运算,即返回两个整数相除的余数
负数求模结果正负号仅由第一个运算数正负号决定
#include<stdio.h>
int main()
{
printf("%d\n",- 8%3);//-2
printf("%d\n", 7%-2);//1
return 0;
}
6.赋值操作符:=
连续赋值:a=s=d+9建议拆开
复合赋值:a=a+3即a+=3以此类推-=、*=、/=
7.单目操作符:++、–、+、-
++指变量加1 --指变量减1
a++先使用再加一
++a先加一再使用
8.强制类型转换
1 int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
9.scanf与printf介绍
9.1基本用法
printf即print format按照格式打印
#include<stdio.h>
int main()
{
printf("hehe\n");
return 0;
}
9.2占位符
#include <stdio.h>
int main()
{
printf("There are %d apples\n", 3);
return 0;
}
%d表示十进制整数占位符,会被后面的变量替代
多个占位符,后面的变量也依次按顺序书写`
#include <stdio.h>
int main()
{
printf("%s says it is %d o'clock\n", "lisi", 21);
return 0;
}
9.3占位符举例
• %a :⼗六进制浮点数,字⺟输出为⼩写。
• %A :⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。
• %d :⼗进制整数。
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
• %i :整数,基本等同于 %d 。
• %f :⼩数(包含 float 类型和 double 类型)。
• %g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e
为⼩写。
• %G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
• %hd :⼗进制 short int 类型。
• %ho :⼋进制 short int 类型。
• %hx :⼗六进制 short int 类型。
• %hu :unsigned short int 类型。
• %ld :⼗进制 long int 类型。
• %lo :⼋进制 long int 类型。
• %lx :⼗六进制 long int 类型。
• %lu :unsigned long int 类型。
• %lld :⼗进制 long long int 类型。
• %llo :⼋进制 long long int 类型。
• %llx :⼗六进制 long long int 类型。
• %llu :unsigned long long int 类型。
• %Le :科学计数法表⽰的 long double 类型浮点数。
• %Lf :long double 类型浮点数。
• %n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
• %o :⼋进制整数。
• %p :指针。
• %s :字符串。
• %u :⽆符号整数(unsigned int)。
• %x :⼗六进制整数。
• %zd : size_t 类型。
• %% :输出⼀个百分号。
9.4.1最小宽度
printf() 允许限定占位符的最⼩宽度。
#include <stdio.h>
int main()
{
printf("%5d\n", 123); // 输出为 " 123"
return 0;
}
上⾯⽰例中, %5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。
输出的值默认是右对⻬,即输出内容前⾯会有空格;如果希望改成左对⻬,在输出内容后⾯添加空
格,可以在占位符的 % 的后⾯插⼊⼀个 - 号。
int main()
{
printf("%-5d\n", 123); // 输出为 "123 "
return 0;
}
对于小数
// 输出 " 123.450000"
#include <stdio.h>
int main()
{
printf("%12f\n", 123.45);
return 0;
}
9.1.4.2 总是显⽰正负号
默认情况下, printf() 不对正数显⽰ + 号,只对负数显⽰ - 号。如果想让正数也输出 + 号,可
以在占位符的 % 后⾯加⼀个 + 。
#include <stdio.h>
int main()
{
printf("%+d\n", 12); // 输出 +12
printf("%+d\n", -12); // 输出 -12
return 0;
}
9.1.4.3限定小数位数
// 输出 Number is 0.50
#include <stdio.h>
int main()
{
printf("Number is %.2f\n", 0.5);
return 0;
}
9.1.4.4输出部分字符串
%s 占位符⽤来输出字符串,默认是全部输出。如果只想输出开头的部分,可以⽤ %.[m]s 指定输出
的⻓度,其中 [m] 代表⼀个数字,表⽰所要输出的⻓度。
// 输出 hello
#include <stdio.h>
int main()
{
printf("%.5s\n", "hello world");
return 0;
}
scanf
1.基本用法
#include <stdio.h>
int main()
{
int score = 0;
printf("请输⼊成绩:");
scanf("%d", &score);
printf("成绩是:%d\n", score);
return 0;
}
2.常用占位符举例
- %s:输入字符串
- %c:输入字符
- %d:输入整型
- %f:输入浮点型
- %lf:double型
- %Lf:long double型
- %[a-b]:输入ASCII码表a-b之间,否则停止
注意:只有%c不会忽视起始空白字符,其余均会跳过
“ %c" %c前加空格可避免
特别地,%s从非空白字符开始读取,直至遇到空白字符停止,故不适用带空格字符串,或用多个%s
同时,输入字符数组时字符串的大小可能超过字符数组大小,故%[]s可限定字符串大小
3.赋值忽略符(*)
%*c可使scanf忽略该位置解析的数据,并且不返回继续读取
4.返回值
scanf函数返回的是成功读取变量的个数
如果读取变量个数为0,则返回0;若在成功读取任何数据前读取错误或读到文件结尾,则返回EOF(-1)