程序员——C语言之数据类型、基本运算、流程控制 易错知识点
来源:互联网 发布:python读取csv文件 编辑:程序博客网 时间:2024/05/22 02:26
1. C语言的数据类型
为了方便操作数据,C语言数据进行了分类
2.交换整型变量a、b的值
比如a=10、b=11;交换之后a的值是11,b的值是10。用三种方式实现:
// 使用第三方变量(工作用到)int temp;temp = a;a = b;b = temp;// 不使用第三方变量(面试用)a = b - a;b = b - a;a = b + a;// 使用位异或运算a = a ^ b;b = a ^ b;a = a ^ b;
3. 查看内存地址:
int a;printf("a的地址是:%p\n", &a);
4.scanf函数注意
用scanf函数接收3个数值,每个数值之间用空格隔开时
scanf("%d %d %d", &a, &b, &c);//3个%d之间是用空格隔开的,我们在每输入一个整数后必须输入一个分隔符,分隔符可以是空格、tab、回车
scanf的第一个参数中不要包含\n,比如scanf(“%d\n”,&a); 这将导致scanf函数无法结束
5.类型转换
自动类型转换
int a =10.6; (double->int) 运行返回a=10
强制类型转换
double a = (double)1 /2;
double b = (double)(1 /2);
// %两侧必须是整数
int b = 10 % 2;
//int b = 10.0% 2; 错误
6. ++ a和a ++的区别(重点)
- int a = 10;
- a++; ++a; 常量不能自增自减操作,无意义。 10++ 不允许 // 因为10++相当于10 = 10 + 1
- int b = a++;(先赋值再自加,因此b=10,a=11)
- int b = ++a;(先自加,再赋值b=11,a=11)
7. sizeof(C语言特有)
用来计算一个变量或者一个常量、一种数据类型所占的内存字节数- sizeof(变量\常量 )
- sizeof变量\常量
- sizeof(数据类型 )
- 不能是sizeof 数据类型
8. 关系运算符优先级
- 关系运算符中==、!=的优先级相等,<、<=、>、>=的优先级相等,且前者的优先级低于后者:2==3>1(优先级:先比较大小,再判断等或不等)优先级重点!!
- 关系运算符的结合方向为“从左往右”: 4>3>2
- 关系运算符的优先级小于算术运算符:3+4>8-2
int a = 5 != 4 + 2 * 7 > 3 == 10// 先算术,再关系,最后等或不等// 等价于 int a = ((5 != ((4 + 2 * 7) > 3)) == 10)
9. && 逻辑与 、|| 逻辑或
“条件A&& 条件B”都真才真。遇假就假
- 总是先判断条件A是否成立
- 如果条件A成立,接着再判断条件B是否成立:如果条件B成立,“条件A && 条件B”的结果就为1,即“真”,如果条件B不成立,结果就为0,即“假”
- 如果条件A不成立,就不会再去判断条件B是否成立(重点):因为条件A已经不成立了,不管条件B如何,“条件A && 条件B”的结果肯定是0,也就是“假”
例如: int a=10; int b=10; intc=(a<5)&&(++b>=11)
返回值a=10;b=10;c=0 因为a<5不成立,所以条件B不作处理。
l 逻辑运算符的优先级顺序为: 小括号() >负号 - > ! > 算术运算符 > 关系运算符 > &&> ||
“条件A|| 条件B”都假0才假0。遇真1就真1
逻辑非! :注意点 !10返回值是0,!!10返回值是1.
10. if条件语句
int a = -10;if (a > 1)printf("A\n");printf("B\n");return 0;当if后面没有{}时,会默认紧跟的下一行printf("A\n");当成条件内容,而与再一行无关。所以printf("B\n");始终会执行。
int main(){ if (10 > 6) int a = 5; return 0;}
上面的代码是错误的。编译器是根据{}来识别a的作用域。上面的情况int a是作用在if里,但编译识别在main{}里。所以作用域不明确报错。
如果要在if后面的语句中定义新的变量,必须用大括号。否则定义作用域不明确,会报错
11. switch语句
- switch(表达式) { case 数值1: break; … default: break;}
- 简述break的作用:退出整个switch语句,若没有,则继续执行下一个case语句。
- 在case中定义变量,必须用大括号,否则跟if情况类似,作用域不明确
12. while循环
while (条件)
{
循环体
}
break: 直接结束整个while循环
continue:结束当前循环体,进入下一次循环体的执行。
- 最简单的死循环 while(1);
- while和do while循环对比区别:
- 1.很多情况下,while和do while可以互换
- 2. while特点:如果一开始的条件不成立,永远不会执行循环体。
- do while特点:不管一开始的条件是否成立,至少会执行一次循环体。
int i=0;do{ i++;} while(i<0);
13. for循环
- 最简单的死循环 for(;;);
- while循环和for循环的比较
- 可以互换
- for循环的变量可以及时回收
- for(int i=0;i<5;i++){循环体}
- int i=0; while(i<5){循环体;i++;} while()小括号里只能放条件,不能初始化变量
- 两者区别在于变量初始化的作用域不同。for循环变量作用域只在循环内部,可以及时回收。
1 0
- 程序员——C语言之数据类型、基本运算、流程控制 易错知识点
- Day01——C语言数据类型+运算+流程控制
- 黑马程序员——C语言——基本运算和流程控制
- 黑马程序员—C语言笔记—基本运算与流程控制
- 黑马程序员——C语言基础语法--scanf函数、基本运算、流程控制
- 黑马程序员——c语言的基本运算和流程控制
- 黑马程序员——C语言(scanf函数、基本运算、流程控制)总结
- 黑马程序员——C语言知识点总结之变量与基本运算
- C语言之基本运算和流程控制
- C语言之基本运算和流程控制
- 黑马程序员——C语言学习——scanf函数、sizeof函数、基本运算、流程控制
- 黑马程序员——零基础学习iOS开发——04 c语言:基本运算、流程控制、函数
- 程序员——C语言之指针 易错知识点
- 黑马程序员——C语言数据类型,变量的内存分析,流程控制
- 黑马程序员--IOS入学学习--2-基本运算及流程控制(C语言)
- 黑马程序员_C语言基本运算和流程控制
- C语言数据类型(一)——基本知识点
- 黑马程序员---C语言之流程控制
- 搭建简单web项目:spring3.0基本配置
- CSDN新博客——Markdown语法测试
- Java面试--Spring技术要点--Spring概述
- OpenCV目标识别
- 一切成功源于积累——20150513 美国4月零售数据不及预期 黄金1192-1218 2600点 短短2个小时
- 程序员——C语言之数据类型、基本运算、流程控制 易错知识点
- 黑马程序员——c语言基础:循环结构练习
- 黑马程序员————网路编程UDP和TCP协议
- HDU2473 并查集的删除
- 用:hover伪类设置导航菜单背景图片的感悟
- cocos2dx3.2+mac+LUA 安卓移植
- 设计模式之禅学习笔记--装饰者模式
- c++之const关键字
- android中用animation实现动画效果