C语言学习记录_2019.02.04
- 逻辑性变量的定义符:bool,在C语言中只有true和false;
- 定义方式:bool t = true;
- 逻辑运算符:
!:逻辑非
&&:逻辑与
||:逻辑或
- 表达区间的错误形式:4<x<6;(由左到右顺序执行)
- 表达区间的正确形式:x>4&&x<6;
- 判断大写字母:c>=’A’&& c<=’Z’;
- 单目运算符的优先级高于双目运算符;
- 例:!age<20;--------> (!age)<20; !单目,<双目;
- index<0||index>99; ------->index不属于0-99范围;
- 优先级:
1 ()
2 !+ – ++ -- 单目运算符;
3 */ %
4 + -
5 < <= > >= 例:a>6 && a<8;
6 == !=
7 &&
8 ||
9 = += –= *= /= %=
与或的优先级很低,但赋值的优先级永远是最低的。
- if (i!=k)
{if (i!=j)
{ if (j!=k)
{
}
}
}
等价于----> if(i!=j && i!=k && j!=k)
{}
- 注意:逻辑与a&&b运算:自左向右进行,当左面的a为false之后,则不会再进行右面的b运算;
- 因此赋值最好不要放在表达式中;
- 对于&&,左边是false时就不做右边了,短路
- 对于||,左边是true时就不做右边了,短路
- 条件运算符: a?b:c; 不推荐使用嵌套的表达式;
- 条件运算符的优先级仅高于赋值=运算符,低于其他运算符;
- 逗号表达式:, i=(3+4,5+6);
- 逗号表达式其结果为逗号后面的东西;所以i=11;
- 在没有大括号的情况下,else总是和最近的if去匹配;
- tips:在if或else后面总是用大括号{},良好的编程习惯;
- 多路条件选择 / 级联的if else:
int f ; ------------------------>单一出口,最后输出;
if ( ) { }
else if ( ) { }
else if ( ) { }
else if ( ) { }
………
else { }
- switch( type)
{
case1:{…;break;}
case2:{…;break;}
……….
de'fault:{…;break;}
}
优点:克服了级联语句需要不断尝试运行每个判断语句的缺点;
注意:type只能为int整数类型;
- type只是指示开始的路标,若跳转后遇不到break,那么继续往下走,执行下一条case语句;case并不是划分的标志,case只是一个路口;
C语言学习记录_2019.02.04的更多相关文章
- C语言学习记录_2019.02.10
sizeof:给出某个类型或某个变量在内存中占据的字节数:(1个字节8位,即8比特) 格式符 (1)%ld表示数据按十进制有符号长型整数输入或输出. (2)%d表示数据按十进制有符号整型数输入或输出. ...
- C语言学习记录_2019.02.23
char类型的输出: scanf("%d",&i);//i=49; char x=i; printf("x=%d\n",x); printf(" ...
- C语言学习记录_2019.02.07
C99开始,可以用变量来定义数组的大小:例如,利用键盘输入的变量来定义数组大小: 赋值号左边的值叫做左值: 关于数组:编译器和运行环境不会检查数组下标是否越界,无论读还是写. 越界数组可能造成的问题提 ...
- C语言学习记录_2019.02.05
switch只能判断整数,而分段函数的判别是一个范围,我们无法用整数来表示范围 跟踪语句的方法: (1)debug调试 (2)printf( )语句跟踪 小套路:当循环次数很大时,可以先模拟较小次数的 ...
- C语言学习记录_2019.02.02
变量在第一次被使用之前应该赋初值 scanf(“%d”,&price); scanf(“price%d %d”,&price); scanf中的东西一定是要输入的东西. 定义常量:c ...
- C语言学习记录_2019.02.12
"学计算机一定要有一个非常强大的心理状态,计算机不是黑魔法,都是人想出来的,别人能够想的出来,那么,总有一天,我也能够想的出来." 指针类型的变量就是保存地址的变量. int* p ...
- C语言学习记录_2019.02.09
打印字符串:%s--------printf("%s","abcd"); 打印字符串数组中某一位:%c--------printf("%c" ...
- C语言学习记录_2019.02.08
\n:换行: \t:制表符,相当于大空格: a[5]={2};<------->a[5]={2,0,0,0,0}; 数组初始化的方法:a[5]={0};即全部初始化为0: 数组初始化的 ...
- C语言学习记录_2019.02.06
break语句的作用:当执行到break,则跳出循环,免去不必要的循环次数,节省时间和资源.-----跳出循环,结束循环: continue:跳过这一次循环剩下的语句,进入到下一轮循环.-----跳到 ...
随机推荐
- linux开机启动脚本
linux开机启动脚本 linux 开机启动脚本 用户自定义开机程序(/etc/rc.d/rc.local) 操作最简单,方便.每次都自己启动PHP啊,Nginx啊 烦死了,其他方式还要弄shell啊 ...
- 小程序——使用Easy Mock
使用Easy Mock 一.什么是Easy Mock Easy Mock 是一个可视化的能快速生成模拟数据的持久化服务.在实际开发中常见的Mock方式一般是将模拟数据直接写在代码里,利用Java ...
- LaTeX-手动安装宏包(package)以及生成帮助文档的整套流程
我使用的是ctex套装,本来已经自带了许多package,但是有时候还是需要使用一些没有预装的宏包,这时就需要自己安装package了.下载package可以从CTAN(Comprehensive T ...
- C# 解决组合优化问题
Google Optimization Tools介绍 Google Optimization Tools(OR-Tools)是一款专门快速而便携地解决组合优化问题的套件.它包含了: 约束编程求解器. ...
- windows下编译leveldb
前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...
- BZOJ 1878 [SDOI2009]HH的项链 【莫队】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 1878: [SDOI2009]HH的项链 Time Limit: 4 Sec M ...
- 转发forward和重定向redirect的区别
本质区别:转发只发送一次请求,重定向发送两次请求. 转发: request.getRequestDispatcher("/HiServlet").forward(request,r ...
- HDU 2096 小明A+B(%的运用)
传送门: 小明A+B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- WinCE下SQLCE数据库开发(VS,VB.net,VC++)
WinCE下SQLCE数据库开发(VS,VB.net,VC++) WinCE下SQLCE数据库开发 微软的SQL Server数据库由于其功能强大.方便使用,因此在很多行业都被广泛应用.基于智能设 ...
- Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake (转载)
One of the top suggestions (currently #15 on uservoice) for improving C# is the addition of non-null ...