起名字:尽量使用英文单词、拼音、驼峰命名法(大小驼峰eg: Studentcount studentcount)
、内核命名法(eg:student_count)
混合赋值运算:
高精度给低精度赋值//精度丢失 eg:int = double
长类型给短类型赋值//高位数据丢失,高位截断short = int
短类型给长类型赋值//无符号:短类型高位补0 有符号:符号位扩展,高位都变为0(正)或1(负)
第4章:
1.控制语句
if ()
{
}
eles
{
}
2.函数调用语句
printf(“hello”);
3.表达式语句
1+2;
4.空语句
;//空
5.复合语句
{
多条语句
}
a = 1 ;
输入输出
输入--计算机(内存)--输出
注:1.c语言并不提供输入输出功能 输入输出函数库
2.标准的输入输出库
#include<stdio.h>//standard input output
3.三组函数
单个字符输入输出 getchar putchar
getchar()//
int getchar(void);//
功能:获取一个字符
参数:void---空类型//表示没有参数
返回值:unsigned char--->int
成功 返回读到的字符的ascii码值
失败 EOF(-1)
字符串的输入输出 gets//string 一串字符“abc” puts
格式化的输入输出 printf scanf
printf:
printf(“格式化控制字符串”,输出列表);
1.格式化控制字符串:printf(“b = %d\n”,10);
2.普通字符:原样输出
占位符:
占一个位置,将输入的数据转换为占位符指定的格式,放到输出列表的地址对应的一块内存空间上。
(如果占位符比输出列表个数多,那么最后一个输出为随机值)
占位符也决定能识别的字符的范围
//整型
%d有符号十进制格式输出
%u无符号十进制格式输出
%x十六进制格式输出
%o八进制格式输出
//浮点数
%f小数形式输出,默认保留6位小数
%g以更简洁方式输出,不会输出多余的0
%e以科学计数法形式输出
%E输出结果中e大写
//字符
%c以字符的格式输出//将对应ascii码值的字符形式输出
%s以字符串格式输出
辅助控制符:
%【辅助控制符】d
辅助控制符可以为#
%#x //表示输出十六进制的前缀
%#o //表示输出八进制的前缀
m 数字---表示输出数据所占的宽度
实际参数的宽度>m 则以实际参数的宽度为准
<m 默认右对齐,前面的空位补空格
左对齐就加一个 - 号
.n数字
浮点数:表示控制输出数据的小数位的位数
字符串:表述输出字符串前n位
l //long类型
ll //long long类型
h //half 一半,2个字节
hh // 1个字节
scanf
int scanf(const char *format)
注:1.第二个参数一定要写 & (取地址)
segmentation fault (core dumped)//程序试图访问不能被访问的空间
2.多个数据输入时,以空白符作为分隔符:空格 回车 tab
3.浮点型数据输入时
double -- %lf
类型也需匹配int -- %d long -- %ld longlong -- %lld
4.辅助控制符
m 输入宽度 达到宽度时,结束匹配,只能获取前m个数据
5.scanf匹配结束的条件
123 456 789
scanf(“%d%d%d”,&a,&b,&c);
a.空白符
b. 指定宽度
123456
scanf(“%3d”,&a);//123
c.非法字符
123a45
scanf(“%d”,&a);
6.%c 字符占位符 几乎可以识别键盘输入的任何字符
scanf(“%c %c %c”,&c1,&c2,&c3);//一个空白符可以匹配任意多个空白符,所以敲数字永远匹配不中止,可以敲一个字符中止匹配。
发现的问题:程序是按顺序依次运行,要规划好,先画流程图再写代码,否则如图有的数据还没从键盘输入就进行计算,程序无法正常运行。eg: