一 对定义的名字规则
1.能用单词尽量用单词
eg:count(计数)
2.尽量不用拼音
3.格式--驼峰命名法
StudentCount 大驼峰;studentCount 小驼峰
二 赋值运算 =
要求:左右两边做到 类型匹配
不同类型的数据间混合赋值
eg:int = double(高精度给低精度赋值 精度丢失)
三
1.高精度 给 低精度 精度丢失
2.长类型 给 短类型 高位截断
3.短类型 给长类型
(无符号 短类型此时 高位补) (有符号 短类型高位 符号位扩展)
四、
1.控制语句
if ()
{
}else
{
}
2.函数调用语句
printf("hello world") ;
3.表达式语句
1+2 ;
4.空语句
; // 空
5.复合语句
{
多条语句
}
a = 1 ;
输入输出
输入---->计算机 ---->输出
[内存]
注意:
1.c语言并不提供输入输出功能
输入输出函数库
2.标准的输入输出库
#include <stdio.h>
五
单个字符输入输出
getchar putchar
格式化的输入输出
printf scanf
字符串的输入输出
gets puts
六
格式化的输入输出
printf //格式化输出函数
int printf(const char * format, ...);
... //可变参
//参数个数是变化的
格式:
printf("格式化控制字符串",输出列表);
格式控制字符串:
printf("b= %d\n",10);
普通字符:
原样输出
占位符:
占了一个位置,最终输出效果,将 输出列表中对应的参数,以占位符指定的格式输出
占位符 与 输出列表的匹配
从左到右逐个对应的
如果 占位符个数 大于 输出列表参数个数 , 多的 输出是随机值
占位符:
//整型
%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
数字 --- 输出的宽度
实际的参数的宽度 > m 则以实际参数的宽度为准
< m 默认右对齐 ,前面的空位补空格
左对齐 加一个 负号(-)
.n 数字
浮点数
表示 控制 输出的小数位数
字符串:
表述输出 字符串 前n位
l // long 类型
ll //long long 类型
h //half --一半 2个字节
hh //1个字节
七
scanf
int scanf(const char *format, ...);
格式:
scanf("格式控制字符串",地址列表)
格式控制字符串:
普通字符:
原样输入 //不建议写
占位符:
占了一个位置,将输入的数据,转换位 占位符 指定的格式,放到 地址列表对应的一块内存空间上
占位符 也决定 能识别的 字符的范围
占位符:
//整型
%d 将输入的数据 转换为 有符号 十进制 格式
%u 将输入的数据 转换为 无符号 十进制 格式
%x 将输入的数据 转换为 十六进制 格式 输出
//%X 将输入的数据 转换为 十六进制 格式 输出 ,但是对应的a b c d e f 都是大写
%o 将输入的数据 转换为 八进制 格式 输出
//浮点数
%f 将输入的数据 转换为 小数的形式
%g
%e
%E
//字符
%c 以 字符的 格式 输出 //将对应的ASCII码值的 字符形式输出
%s 以 字符串 格式 输出
注意:
1.第二个参数注意一定要写 & (取地址)
Segmentation fault (core dumped) //程序试图访问不能被访问的空间
2.多个数据输入时
以空白符作为分割符:
空白符:
空格
回车
tab
3.浮点型数据输入时
double -- %lf
类型要匹配
int - %d
long - %ld
long long - %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); // 一个空白符 --匹配任意多个空白符
%*c // 表示 跳过一个 数据项