字符串的输入和输出函数
| 函数名 | 功能 | 备注 |
| puts |
向终端输出一个字符串 int puts(const char*s); |
参数传入,变量,常量都行 在字符串的最后,会加入\n |
| gets |
从终端接受一个字符串 char*gets(char*s); |
参数传入,变量(数组) 在输入内容的时候,不要越界。越界后结果不确定 |
int main()
{
puts("hello"); // 会加入换行符
char str[256] = "nihao,zhangsan";
puts(str);
scanf("%s",str);
printf("nihao,%s\n",str);
return 0;
}
// gets
int main()
{
char namr[5] = {0};
printf("input person name");
//输入的内容大于4个字符以上,就会出现越界
gets(name); // 阻塞,等待接收数据
return 0;
}
第三章 流程控制
1.顺序逻辑,从main函数开始,一条挨着一条执行,直到最后
2.分支逻辑,从main函数开始,有选择性的执行,直到最后
3.循环逻辑,从main函数开始,对某一段代码执行多次后,直到最后
顺序逻辑流程图 分支逻辑流程图 循环逻辑流程图
关系(比较)运算符
操作的对象 数值型 (int float double)
| 比较运算符 | 功能 | 备注 |
| > | 大于 双目 | |
| >= | 大于等于 双目 | |
| < | 小于 双目 | |
| <= | 小于等于 双目 | |
| == | 判等,左右两边等值,双目 | 注意和=(赋值)区别 |
| != | 不等于 左右两边不等值 双目 |
使用关系式连接的式子-》关系表达式 其值 逻辑结果1(真)0(假)
关系表达式的类型int ,由于int类型的值域非常大,除了0,1之外,还有很多数。所以非0即为真
逻辑运算符 操作对象 逻辑值(0,1)
| 运算符 | 功能 | 备注 |
| && | 逻辑与 双目 | |
| || | 逻辑或 双目 | |
| ! | 逻辑非 单目 |
逻辑表达式,值的类型int逻辑结果1(真)0(假)
逻辑与 ,左值和右值 同时都为真的情况下, 整个表达式的值为真 。 全部都要为真
逻辑或 ,左值和右值 只有有一个值为真, 整个表达式的值为真 。 只要一个为真
逻辑非 ,单目 右结合, 如果原来是真,则变假;如果原来是假,则变真。
截断效应,短路效应 ,(&& 和|| 运算符有关)
int num = 0;
int b = 1;
num && b++
0 && b++ ; // 对于 &&操作,如果左操作数为0 的情况下,右操作数是不会执行的。
在这个表达式中,虽然 ++ 是单目运算符。 但是 截断效应 比运算符的++优先级,更高。
printf("express is %d\n",num && b++) ; // 表达式的值 0 b ?
printf("b is %d\n",b);
express is 0
b is 1
int num = 1;
int b = 1;
num || ++b;对于 ||操作,如果左操作数为1 的情况下,右操作数是不会执行的。
在这个表达式中,虽然 ++ 是单目运算符。 但是 截断效应 比++运算符的优先级,更高。
printf("express num || b++ is %d\n",num || ++b) ; // 表达式的值1 b ==1? printf("b is %d\n",b);
express num || b++ is 1
b is 1
三目运算符
结合方向从右向左 。
? :
表达式1 ? 表达式2: 表达式3
表达式1 ,类型 int ,结果应该是一个逻辑结果 。
如果 表达式1 的值 为 真 ,则执行表达式2
如果 表达式1 的值 为 假 ,则执行表达式3
int num1 = 0 ;
int num2 = 0;
int max = 0 ;
printf("找两数的最大数 :");
scanf("%d%d",&num1,&num2);
// 比较 num1 > num2 。如果为真 ,整个表达式的值 num1 ,否则是num2
max = num1 > num2 ? num1:num2;
printf("max is %d\n",max);
分支结构
对代码进行选择行的执行。
1 . if else
1)如果需要实现判断逻辑,就需要使用 if
2)if 后面要紧跟 表达式,使用圆括号,括起来。
3) if 可以单独使用 。else 需要和if配对使用,不能单独出现。
4) if,else 后需要被执行的语句,建议都使用大括号,括起来。即使是一句话
5) if,else 后不要加分号。
注:
如果在if(表达式)后加了分号,语法不会报错。只有分号的话,是一个空语句,可可能会导致逻辑不对
else 必须和 if 配对使用,不然会和最近的 if 配对
2.阶梯分支
if (表达式 1) {
语句块1;
}
else if( 表达式 2)
{
语句块2;
}
else if( 表达式 3)
{
语句块3;
}
....
else
{
语句块n;
}
3.if 嵌套形式
//不建议嵌套层数太多 , 3-5 层。 多了就不要阅读。
if(表达式1)
{
if(表达式2)
{
if(表达式3) == if(表达式1 &&表达式2 && 表达式3 )
{
语句1;
}
}
}
1885

被折叠的 条评论
为什么被折叠?



