ios开发语言在c语言的基础上,iOS开发 - C语言基础4(基本语句和运算符) - 猫扑天空...
iOS开发 — C语言基础4(基本语句和运算符)
基本语句
C语言的基本语句跟Java中的差不多,所以,这里只是简单地提一下
循环语句(do while、while、for)
条件语句(if 、if-else、switch)
goto语句
基本运算
计算机的基本能力就是计算,所以一门语言的计算能力十分重要。C语言之所以无所不能,很大原因在于它有强大的计算能力。C语言一共有34种运算符,其中的大多数运算符跟在Java中的用法是一样的。下面做一个简单介绍。
一、算术运算符
①. 加法:+ 还可以表示正号
②. 减法:- 还可以表示负号
③. 乘法:* 非数学意义上的X
④. 除法:/ 注意1/2的值为0而非0.5
⑤. 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)
注意点:
①. Int a=10.8;//数据精度丢失警告。结果为10——自动类型转换
②. Int a=(int)10.8;//无警告。把10.8强制转换为整型——强制类型转换
③. Double c=10.6+6//结果为16.600000。在计算机中,拿两个数值进行运算,则运算符两边的数值需要类型相同,如果不同则进行自动类型提升。即把6转为6.000000后再参与运算。
④. 参与运算的两个数是什么类型,那么其结果就是什么类型。int a=10/3结果为3,double b=10/3结果为3.000000;double c=10.0/3结果为3.333333。要求精确值可以进行强制类型转换。double d=(double)3/2把3转换为double类型变为3.000000,之后2进行自动类型提升转变为2.000000参与运算,结果为1.500000。也可以写成3/(double)2。这种情况需要注意与对整体进行强制转换的区别 double e=(double)(3/2)是先计算3/2的值为1再对1进行强制类型转换,结果为1.000000。
二、关系运算符
<= 小于等于运算符
> 大于运算符
>= 大于等于运算符
== 等于运算符
!= 不等于运算符
* 关系运算的结果成立就为”真”(比如5>=4),不成立则为”假”(比如5<4)
* 在Java中,关系运算的结果为”真”就返回true,”假”则返回false,用boolean类型的变量来接收
boolean b1 = 5 > 4; // true
boolean b2 = 5 < 4; // false
C语言中没有boolean类型
* 在C语言中,关系运算的结果为”真”就返回1,”假”就返回0
int a1 = 5 > 4; // 1
int a2 = 5 < 4; // 0
* 还需注意的是,在C语言中,任何非0值都为”真”,只有0值才为”假”
所以下面的做法是对的:
int a = 10;
if (a) {
printf(“条件成立”);
} else {
printf(“条件不成立”);
}
因为a不为0,所以为”真”,输出结果是:
若是在Java中,编译器直接报错了,因为if的括号()中只能放boolean类型的值。
以此类推,下面的写法也是对的:
int a = 10;
if (a = 0) {
printf(“条件成立”);
} else {
printf(“条件不成立”);
}
上述代码是完全合理的,编译器不会报错,只是个警告而已。因为a为0,所以为”假”,输出结果是:
这样看来,C语言似乎比Java方便很多,其实有很大的陷阱在这里:
假设你本来是想判断a是否为0,那么本应该写if (a == 0),若你误写成了if (a = 0),那将是一件非常可怕的事情,因为编译器又不报错,这样的BUG就难找了。因此,像a==0这样的表达式,最好写成0==a,若你误写成0=a,编译器会直接报错的。
// 不推荐
if (a == 0) {
}
// 推荐
if (0 == a) {
}
* 在C语言中,可以不保存关系运算的结果
因此,下面的写法是合法的:
1 int a = 10;
2 a > 10;
3 a == 0;
如果是在Java中,第2、3行编译器会直接报错,但在C编译器看来是合法的,只是个警告。
所以,这里又是一个陷阱,假设你的本意是想给a赋值为0,那么本应该写a = 0; ,若你误写成a == 0; ,那将又是一个非常难找的BUG,因为编译器根本不会报错。在1993年的时候,这个BUG差点让一桩价值2000万美元的硬件产品生意告吹,因为如果这个BUG不解决,这个产品就没办法正常使用。
三、逻辑运算符
&& 逻辑与运算符
|| 逻辑或运算符
! 逻辑非运算符
逻辑运算的结果也只有两个:成立就为”真”,返回1;不成立就为”假”,返回0
①. 与 && 条件1&&条件2 只有的那个条件1和条件2都成立时,才为真否则为假。
②. 或 || 条件1 ||条件2 当条件1或条件2中有一个成立时就为真,都不成立时为假。
③. 非 ! !条件 取反
注意:逻辑运算符在进行运算时,只要能够确定整体的真假性,后面的条件就不再进行而是直接忽略。
Int a=b=10;
Int c=(a>5)&&(++b>=11);//此时a==10,b==11,c==1
Int c=(a<5)&&(++b>=11);//此时a==10,b==10,c==0
提示:在进行逻辑运算时,如果搞不清楚各个符号的优先级,可以使用()。
四、赋值运算符
1.简单的赋值运算符 = :int a = 5;
2.复合赋值运算符
+= 加赋值运算符。如a += 3+1,等价于 a = a +(3+1)
-= 减赋值运算符。如a -= 3+1,等价于 a = a -(3+1)
*= 乘赋值运算符。如a *= 3+1,等价于 a = a *(3+1)
/= 除赋值运算符。如a /= 3+1,等价于 a = a /(3+1)
%= 取余赋值运算符。如a %= 3+1,等价于 a = a %(3+1)
五、自增运算符和自减运算符
++ 自增运算符。如a++,++a,都等价于a = a+1
— 自减运算符。如a–,–a,都等价于a = a-1
六、逗号运算符和逗号表达式
* 逗号运算符主要用于连接表达式,例如:
1 int a = 9;
2 int b = 10;
3
4 a = a+1 , b = 3*4;
* 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为:
表达式1, 表达式2, … …, 表达式n
逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,…,最后计算表达式n
* 整个逗号表达式的值是最后一个表达式的值
int a = 2;
int b = 0;
int c;
c = (++a, a *= 2, b = a * 5);
printf(“c = %d”, c);
++a的结果为3,a *= 2的结果为6,b = a * 5的结果为30。因此,输出结果为:
这里要注意的是,右边的表达式是有用括号()包住的,如果不用括号包住,也就是:
c = ++a, a *= 2, b = a * 5;
printf(“c = %d”, c);
输出结果将为:
因为c = ++a也属于逗号表达式的一部分,跟后面的a *= 2以及b = a * 5是相互独立的
七、条件运算符和条件表达式
其实就是三目运算符,一般形式为:表达式1 ? 表达式2 : 表达式3
int a = (b > 5) ? 10 : 9;
八、sizeof
* sizeof可以用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。
int size = sizeof(10);
printf(“10所占的字节数:%d”, size);
输出结果:
10是int类型的数据,在64bit编译器环境下,int类型需要占用4个字节
* sizeof一共有3种形式
sizeof( 变量常量 )
sizeof(10);
char c = ‘a’;
sizeof(c);
sizeof 变量常量
sizeof 10;
char c = ‘a’;
sizeof c;
sizeof( 数据类型 )
sizeof(float);
注意,不可以写成sizeof float;
ios开发语言在c语言的基础上,iOS开发 - C语言基础4(基本语句和运算符) - 猫扑天空...相关推荐
- 在linux基础上开发内核,科学院在Linux内核基础上,开发出中文操作系统是()。A.中科LinuxB.熊猫LinuxC.红旗Linux...
科学院在Linux内核基础上,开发出中文操作系统是().A.中科LinuxB.熊猫LinuxC.红旗Linux 更多相关问题 肉芽组织在光镜下主要由什么成份构成?A.炎症细胞及成纤维细胞B.成纤维细胞 ...
- 世界上最美丽的语言python_你如何理解“世界上最美丽的语言是微笑”,要求是一篇3分钟的即兴评述,...
题目: 你如何理解"世界上最美丽的语言是微笑",要求是一篇3分钟的即兴评述, 解答: "世界上最美丽的语言,就是微笑" 我要说,微笑,是无国界的语言.每一个微笑 ...
- python语言采用严格的什么填上恰当词语_Python语言是
[单选题]WHO规定,发达国家的老龄化社会标准为65岁以上人口占总人口的 %以上 [单选题]关于 Python 语言的编程模式,哪个说法正确? ...
- 在c语言中怎么返回引用参数,C语言函数 函数的声明 C语言的头文件 #include的用法 形参和实参 函数的返回值 - 猫扑天空...
C语言函数 一.是什么? 是指编程中对一块功能代码的封装,可以理解一个程序片段 二.有什么用? 可以封装代码,方便调用,提高复用性 三.怎么用? 定义: 返回值类型 函数名(形参类型 参数名1-. ...
- c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...
#includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...
- Django项目开发案例教程【可在此基础上进行开发】
CSDN下载链接:https://download.csdn.net/download/qq_45021180/86737985 飞书下载 : https://qbq4a8utjq.feishu.cn ...
- ios系统更新提示没有连接到服务器上,ios 更新时不再连接到无线网
获取有关 iOS 更新和恢复错误的帮助 了解如何解决 iOS 更新和恢复错误. 先尝试完成以下步骤获取最新版本的 iTunes.要更新 iTunes,您可能需要 OS X Mavericks 10.9 ...
- C++语言99个常见编程错误 常见错误7:无视基础语言的精妙之处
常见错误7:无视基础语言的精妙之处 大多数C++软件工程师都自信满满地认为iziji对所谓C++的"基础语言",也就是C++继承 自C语言那部分了如指掌. 实际情况是,即使经验 ...
- 【视频回放与课件】零基础入门AI开发
今天上午,受广州图书馆邀请,在第一讲<零代码上手人工智能>的基础上,以<零基础入门AI开发>为主题,分四步解锁人工智能学习的概念与开发工具,让您在一小时内轻松掌握人工智能开发要 ...
最新文章
- Nginx 进阶 (ssl、fpm、rewrite、cache配置等)
- 关于直流电源纹波和噪声的测量的分析和介绍
- 5.7 程序示例--基于 SMO 的 SVM 模型-机器学习笔记-斯坦福吴恩达教授
- 贵州计算机专业强的专科学校,贵州排名靠前的五年制大专学校--贵州计算机学校...
- C++ 实现布隆过滤器(BloomFilter)
- springboot转发http请求_如何实现Http请求报头的自动转发
- 初学Java,LinkedList功能最全的集合类
- linux设备实现otg移动盘,Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘...
- 国庆蓝牙耳机最强选购攻略,2020不容错过的精品蓝牙耳机
- mac制作u盘启动盘
- pt100铂电阻低温温度传感器的特点
- Javaweb实现登录界面“记住我”功能
- maven deploy忽略指定模块module发布到私库
- iOS自动化-iOS录屏xrecord及解决iPhone设备不显示的问题
- python语言求球的体积,改进蒙特卡罗程序求高维球体体积。(Python)
- 微机原理课程设计--计算器
- Nginx反向代理跨域访问气象局天气接口
- 游戏任务设计(4):Puzzle、Challenge和任务叙事
- 11个开源测试自动化框架,如何选?
- 4. 存储过程 · sql编程
热门文章
- The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘ failed with error: Get “http://loc
- QT(嵌入式开发)期末综合实验(打地鼠游戏)
- 电脑--Win10电脑如何设置锁屏后不熄屏(锁屏不关屏幕)
- python替换list中的元素
- 按照这样的规划能让你月薪至少30K,亲自实践过
- 2022年场(厂)内专用机动车辆安全管理操作证考试题及答案
- java照明模型_在JAVA的异常处理模型中,能单独和finally语句一起使用的块是()。...
- SOAP、WSDL与UDDI协议
- ios快捷指令连接linux,iOS13快捷指令功能如何使用 iOS13快捷指令功能使用方法
- 主流linux系统发行的官方网站