输入输出
- 格式控制串:%有效数值位数 . 小数位数 数据类型(%是格式控制标识符)
- 数值输入:scanf( "格式控制串" ,地址表(如&a))
- 将数据传入对应的内存地址上
- 输入时不允许制定精度,可指定有效数值位数
- 空格,到达有效数值位数,回车时结束输入
- &是取址符
- scanf表达式的值
- 为int,表示成功读入的变量个数
- 为Eof(-1),表示输入数据已经结束
- 字符输入
- getch():不显回,不回车
- getche():显回,不必回车
- getchar():回车后读入
- 数值输出:printf( "格式控制串",变量表)
- 输出的各个数据格式与变量表一一对应
- 字符输出
- putchar(变量名)
运算
- 算术运算
- 值的类型以操作数中精度高的类型为准(double > longlong > int > short > char)
- 溢出时,溢出部分直接丢弃
- ++a:返回值为+1后的值
- a++:返回值为+1前的值
- 关系运算
- 与:同真为真
- 或:同假为假
- 非:取反
- 优先级
- ++... > *... > +... > 比较运算符 > && > || > =/+=...
流程控制
- break:跳出循环,程序向下执行
- continue:跳出本次循环,程序执行下次循环
- freopen:重定向输入,由键盘输入重定向为文件输入
- freopen( "url" , "r" , stdin )
数组
- 一维数组
- 定义:类型名 数组名[元素个数];
- 数组内存空间:p + n * sizeof(数据类型);(p为内存始址,n为数组元素个数)
- 存储方式:在内存中连续存放
- 二维数组
- 定义:类型名 数组名[行数][列数]
- 数组内存空间:p + n * m * sizeof(数据类型);
- 存储方式:行优先/列优先,在内存中连续存放
- 数组越界:对编译器而言,只是根据数组下标确定对应的内存空间所在位置,所以越界时编译器不会报错,但是可能会写入了别的变量的内存空间,从而导致程序出错。
函数
- 定义:返回值类型 函数名( 参数类型 参数名,... ){ 函数体 }
- 函数调用
- 函数的调用语句前有函数的声明即可,不一定要有定义
- 在函数调用前必须存在这个被调用的函数
- 函数参数
- 形参是实参的一个拷贝,形参改变不会影响实参,形参实参分别对应各自独立的内存空间(数组或引用传递除外)
- 形参数组的首地址就是实参数组的首地址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现