1.%lf即打印double类型的
2.int c= a%b(a和b都只能是整数)
3.负数求模的规则是,结果的正负号由第一个运算数的正负号决定
例:11%(-5)=1;(-11)%(-5)=-1;(-11)%5=-1
4.a=100; b=a=a+3:得到的结果是:b为103,a=103;即赋值是由右侧赋值到左侧
5.有+=;*=;-=;/=;%=等等
6.printf(“%d”,--10);是会报错的(因为前置减减,这是个自减运算符,只能作用于变量,想要两次取负,得加括号)
7.int a = -+10;即a=-10
8.(类型)数据 叫做强制类型转换(万不得已再用)
9.%d那些叫占位符
10.printf("%s",“jiao”);
打印jiao
11.%c打印字符;%i基本等同于%d;%f打印float;%lf打印double;%p打印指针;%s打印字符串;%u打印无符号整数;%x打印十六进制整数;%zd打印size_t类型;%%输出一个百分号;%hd打印short类型
12.%8d想要打印出来的数据若是不足8位,则在前面补充空格直至打印出来数据变成八位;%10d同理,会用空格补充前面的数据直至数据变为10位(若是数据多于8位或10位则照常打印,是多少位就打印多少位)(如果是%-8d则会在后边补充空格以致此数据满8位数,而%-10d则在后边补充空格直至满10位数)
13.printf("%12d",123.45);打印出来的结果是 123.450000(因为默认打印小数点后六位,则又因为他是正的d,所以在前边补充两个空格以致让这个数据满足12位)(多了的话,就,是多少,打印多少)
14.printf("%+d",12);打印结果是+12
printf("%d",12);打印结果是12
printf("%+d",-12);打印结果是-12
printf("%d", +12); 打印结果是12
15.printf("%.2f",0.5);打印结果是0.50
16.printf("%6.2f",0.5);打印结果是 0.50(因为.也算一位,小数点后边六位,小数点前面有
(6-3=3)位,有一位是0,那还差两位,就填充为两个空格)(另外printf("%*.*f",6,2,0.5))打印结果与前者一样
17.printf("%.5s","hello C");打印hello,空格也算一位;
18.scanf_t函数是VS特有的
19.
20.数组名本来就是地址
21.scanf函数不会管你输入的数据他能不能放下,所以在放下数据后如果超出了存储范围那他程序就崩了,所以相对不安全
22.scanf处理用户输入数据的原理是,用户的输入数据先存入缓存,等到按下回车键后,按照占位符对缓存进行解读,解读时,会从上次遗留的第一个字符开始,直到读完缓存,或者遇到不符合条件的字符为止
23.1.2e表示1.2*10的12次方
24.scanf函数的返回值是一个整数,即读取到的变量的个数,如果没读取任何项,或匹配失效,则返回0,如果在成功读取到任何数据之前,发生了读取错误或读取到了文件结尾,则返回常量EOF
25.按下~z可以让程序停止运行。有时要三个,有时一直不行(应该是bug)(同时要注意输入ctrl+z后要回车)
26.EOF的值是-1
27.%[ ]在方括号中制定一组匹配的字符(如%[0~9]),遇到不在括号中的字符,匹配将停止
28.%c不忽略空白字符,总是要返回当前的第一个字符,如果要强制忽略空白字符,可以写成scanf(“ %c”)用来跳过零个或多个空白字符
29.%s从当前第一个非空白字符开始读起,直到遇到空白字符为止
30.要按照输入格式来输入数据
31.scanf()将字符串读入字符数组时,不会检测字符串是否超过了数组长度,为了防止输入的字符串长度超过数组长度,应写成%[m]s,其中的m表示读取的字符串的最大长度,后面的字符将被丢弃
32.只要把*加在任何占位符的百分号后面,该占位符就不会返回值,解析后将被丢弃,即被忽略
例:scanf(“%d%*c%d%*c%d”,&a,&b,&c);我输入:2023,10,18或2023/10/18
那么a被赋值为2023,b=10,c=18
33.这篇太细化了,太细的东西不用写进来,太费时间,也没写进来的必要