见名知意 , 尽量其起英文名;避免拼音。
一般采用驼峰命名法:
StudentCount //大驼峰
studentCount //小驼峰
student_count //内核命名法
编译时的问题
错误 --- 语法错误
警告 --- 语法不合适
运行时的问题
逻辑问题 --- 调整思维
int = double // 高精度给低精度赋值 精度丢失(损失) 【小数点后精确度损失】
double = int // 没有影响
short = int // 长类型数据 给到 短类型 --高位截断【字节减少,保留低位地址,高位地址丢失】
int = short // 无符号 短类型 此时 补 0 【0不显示】
//有符号 短类型 符号位扩展 【符号位扩展,符号位为1,前面增加的位置全部为1,全部看成一个符号位 1 】 例:1011 0001 0001 0001 ——> 1111 1111 1111 1111 1011 0001 0001 0001 0001
前面17个1当作一个符号位1。
语句一般分为:
1.控制语句,(如:if else , for 等)
2,函数调用语句,(即输入输出语句)(如:printf,scanf等)
3,表达式语句,(如:1+2)
4,空语句,(;)
5复合语句,(多条语句)
c语言不提供输入输出功能;使用时借用函数调用语句从输入输出函数库调用;
标准函数输入输出库在程序开头写入: #include
getchar // 单个字符输入
putchar // 单个字符输出
一次只能输入或输出一个字符;需要几个字符就得用几次getchar,输出同理;
1.1 getchar一般为: getchar (void);void为空类型,表示没有参数,等同于啥都没有,可以空出来;
使用时输入一个字符 ' ' ,经过返回值(类似数学中的X Y 给X 一个数 Y 相应的到一个值);此时存在一个隐式类型转换:unsigned char——>int;
1.2 putchar一般为: putchar (字符 数字) 输出单个字符,输出的为ASCII值,给定的字符或相应的字符十进制数或十六进制数等,均将输出ASCII码的字符;
printf的形式一般为:printf ( " 格式化控制字符串 " , 输出列表 ) ;
普通字符 : 直接输出 (不发生变化)
占位符(%*): 占了一个位置,最终输出效果,将 输出列表中对应的参数,以占位符指定的格式输出;占位符 与 输出列表的匹配 ,多个占位符与输出从左到右逐个对应的 ; 如果 占位符个数 大于 输出列表参数个数,多出的 输出是随机值 ;【占位符确定格式,输出参数确定结果大小】。
%d 以 有符号 十进制 格式 输出
%u 以 无符号 十进制 格式 输出
%x 以 十六进制 格式 输出
%X 以 十六进制 格式 输出 ,但是对应的a b c d e f 都是大写
%o 以 八进制 格式 输出
%f 以小数的形式输出,默认保留6位小数
%g 以 更简洁 的方式输出 ,不会输出多余的0
%e 以 科学计数法形式 输出
%E 输出结果中 e 大写
%c 以 字符的 格式 输出 // 以对应的ASCII码值的 字符形式输出
%s 以 字符串 格式 输出
常见:% [辅助控制符] d
# %#x // 表示 输出十六进制 的前缀
%#o // 表示 输出八进制 的前缀
整型一般直接给整数 (m) ;
常见:% [数字] d // 表示d对应输出列表的参数宽度为[ ] 中对应数字;
注意: 实际的参数的宽度 > m 则以实际参数的宽度为准
< m 默认右对齐 ,前面的空位补空格
左对齐 加一个 负号(-)
而浮点型一般为 .n ;
常见:% [.数字] f // 表示 控制 输出的小数位数 ;【强制使输出小数位数与数字相同】
字符串 : 表述输出 字符串 前n位
l long
ll longlong
h // half -----一半 如 Int 的一半为2个字节
hh // 一半的一半 即四分之一
scanf的形式一般为: scanf ("格式控制字符串",地址列表)
普通字符: 原样输入 但必须自己输入
占位符(%*): 占了一个位置,将输入的数据,转换为 占位符 指定的格式,放到 地址列表对应的一块内存空间上 ;【占位符确定输入数据格式】 占位符 也决定 能识别的 字符的范围;
整型 :
%d 将输入的数据 转换为 有符号 十进制 格式
%u 将输入的数据 转换为 无符号 十进制 格式
%x 将输入的数据 转换为 十六进制 格式 输出
%X 将输入的数据 转换为 十六进制 格式 输出 ,但是对应的a b c d e f 都是大写
%o 将输入的数据 转换为 八进制 格式 输出
浮点数
%f 将输入的数据 转换为 小数的形式
%g 将输入的数据转换为 小数的形式 并以 更简洁 的方式输出 ,不会输出多余的0
%e 将输入的数据转换为 小数的形式以 科学计数法形式 输出
%E 将输入的数据转换为 小数的形式 输出结果中 e 大写
字符
%c 将输入的数据转换 以 字符的 格式 输出 //将对应的ASCII码值的 字符形式输出
%s 将输入的数据转换 以 字符串 格式 输出
1.写地址列表时 注意一定要写 & (取地址)
2.多个数据输入时 以空白符作为分割符:
空白符 : 空格 回车 tab
3. 浮点型数据输入时 double 为 %lf
其他类型为 :
int - %d
long - %ld
long long - %lld
4.辅助控制符 : m 宽度 -- 输入的宽度
达到宽度时,输入匹配结束 , 只能获取到前m个数据 (强制只能获取m个数据);
5. %c 字符占位符 几乎可以识别键盘输入的任何字符
scanf("%c %c %c",&c1,&c2,&c3) ; // 一个空白符 --匹配任意多个空白符
%*c // 表示 跳过一个 数据项 【%*c不占用地址列表的字符变量 输入字符时在第几个第几个字符就不显示,输入下一个占下一个%c】
a.空白符 :
123 456 789
scanf("%d%d%d",&a,&b,&c); 【当输入数字时用空白符表示这个字符结束,多个字符一起时用空白符隔断(也就是结束前一个)】
b.指定宽度 :
123456
scanf("%3d",&a); //123 【指定多少只能输入多少个数字】
c.非法字符
123a45
scanf("%d",&a); 【当输入字符不是规定字符时直接结束】