输入输出
- 格式控制串:%有效数值位数 . 小数位数 数据类型(%是格式控制标识符)
- 数值输入:scanf( "格式控制串" ,地址表(如&a))
- 将数据传入对应的内存地址上
- 输入时不允许制定精度,可指定有效数值位数
- 空格,到达有效数值位数,回车时结束输入
- &是取址符
- scanf表达式的值
- 为int,表示成功读入的变量个数
- 为Eof(-1),表示输入数据已经结束
- 字符输入
- getch():不显回,不回车
- getche():显回,不必回车
- getchar():回车后读入
- 数值输出:printf( "格式控制串",变量表)
- 字符输出
运算
- 算术运算
- 值的类型以操作数中精度高的类型为准(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(数据类型);
- 存储方式:行优先/列优先,在内存中连续存放
- 数组越界:对编译器而言,只是根据数组下标确定对应的内存空间所在位置,所以越界时编译器不会报错,但是可能会写入了别的变量的内存空间,从而导致程序出错。
函数
- 定义:返回值类型 函数名( 参数类型 参数名,... ){ 函数体 }
- 函数调用
- 函数的调用语句前有函数的声明即可,不一定要有定义
- 在函数调用前必须存在这个被调用的函数
- 函数参数
- 形参是实参的一个拷贝,形参改变不会影响实参,形参实参分别对应各自独立的内存空间(数组或引用传递除外)
- 形参数组的首地址就是实参数组的首地址
|
|
|