C语言学习笔记 运算符初步介绍
2016-01-29 21:04
447 查看
运算符:算术操作运算、逻辑运算、位运算、赋值运算、内存访问符号;
一、算术运算符 + - * /
注意: int a = b*10 ; 可能需要多个CPU周期才能完成赋值,甚至可能需要软件模拟的方法才能实现乘法。如果是ARM裸机跑程序的话,有可能因为没有*乘法的函数,而无法完成赋值。
int m=n+5; CPU只需要一个机器周期就能完成;
所以 在开发的过程中尽量避免使用 乘法和除法/
% 取余运算
(1) n %m =res 则res在0到m-1范围中
例子:给定任意一个数m,输出一个1到100的数字: ( m%100)+1
(2) 得到M进制的一个个位数
(3)可以生成一个循环的数据结构的下标
二、 逻辑运算 :返回值 1真 0 假,后来 假 0 非假为真 非0
逻辑运算 :或|| 、与 &&、 非 !
注意:
A||B 不等于 B||A,A &&B也不等于 B&&A
f原因:在C语执行的过程中,A或B中 如果A为真则不用继续执行B,如果A为假,则继续判断B;在B或A中是先判断 B的 所以两条语句不同,其他的也同理。
可以测试 一下代码 :
三、非 !真变假, 假变真,注意取反“~”是每位取反。
四 ? : if esle
一、算术运算符 + - * /
注意: int a = b*10 ; 可能需要多个CPU周期才能完成赋值,甚至可能需要软件模拟的方法才能实现乘法。如果是ARM裸机跑程序的话,有可能因为没有*乘法的函数,而无法完成赋值。
int m=n+5; CPU只需要一个机器周期就能完成;
所以 在开发的过程中尽量避免使用 乘法和除法/
% 取余运算
(1) n %m =res 则res在0到m-1范围中
例子:给定任意一个数m,输出一个1到100的数字: ( m%100)+1
(2) 得到M进制的一个个位数
(3)可以生成一个循环的数据结构的下标
二、 逻辑运算 :返回值 1真 0 假,后来 假 0 非假为真 非0
逻辑运算 :或|| 、与 &&、 非 !
注意:
A||B 不等于 B||A,A &&B也不等于 B&&A
f原因:在C语执行的过程中,A或B中 如果A为真则不用继续执行B,如果A为假,则继续判断B;在B或A中是先判断 B的 所以两条语句不同,其他的也同理。
可以测试 一下代码 :
#include <stdio.h> int main () { <span style="white-space:pre"> </span>int a=10; <span style="white-space:pre"> </span>int res ;
<span style="white-space:pre"> </span>res=(a==10)||(printf("++++++++++++++++\r\n"));
<span style="white-space:pre"> </span>printf("%d",res);
<span style="white-space:pre"> </span>res=<span style="font-family: Arial, Helvetica, sans-serif;">(a==1)||(printf("++++++++++++++++\r\n"));</span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space:pre"> </span></span><span style="font-family: Arial, Helvetica, sans-serif;">printf("%d",res);</span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space:pre"> </span></span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space:pre"><span style="white-space:pre"> </span>return</span> 0;</span>
}执行上述代码后 就会发现 第一个res中的printf函数不执行,只有当第一个逻辑判断不成立的时候才能继续执行下一跳逻辑判断语句。
三、非 !真变假, 假变真,注意取反“~”是每位取反。
四 ? : if esle
相关文章推荐
- C语言文件操作
- C++ 11 右值引用以及std::move
- C++ lambda笔记
- C++ 知识点
- C语言学习笔记 类型修饰符
- map(c++)
- string专题(c++)【1】
- 11条最全面的C/C++编码规范总结
- C++ 编程模块
- C语言不用任何参数遍历数组的方法
- c语言中static 用法
- c++之枚举
- Information on the C++ language
- C语言字符检测函数:isalnum、isalpha、isascii、iscntrl、isdigit、isgraph、islower、isspace、ispunct、isupper
- 石子合并问题
- C++ eclipse 开发环境搭建
- POJ 3259 Wormholes 链式前向星+SPFA
- SPFA
- return临时变量的问题
- [转载]MFC截屏之一:C++截取整个屏幕,并生成图片(基于MFC)