C语言操作符详解

操作符的存在使C语言更加的灵活,实现更多的功能。但是,操作符的一些繁琐的使用方式,规则却常常让我们这些初学者头疼。本文将操作符进行总结,汇总一起分享。
一,操作符的分类
操作符分为以下几种:算术操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号操作符,下标引用,函数调用和结构成员。
算术操作符:
+ - * / %
1.除了%操作符外,其他的操作符可以作用于整数和浮点数;
2.对于/操作符,如果有一个浮点数就执行浮点数除法;
3.%操作符的两个操作数必须是整数,返回整数相除之后的余数。
移位操作符
<< 左移操作符
>> 右移操作符
例如: int 型数据15在计算机里存储的是32位二进制数
00000000000000000000000000001111
15>>1即将二进制序列右移一位,右移出来的位丢掉,左边补符号位(算术移位)为
00000000000000000000000000000111
在部分编译器中右移会采用另一种逻辑移位,即左边用0补充,右边丢弃。
15<<1就是将二进制序列左移一位,左边移出来的位丢点,右边补0为
00000000000000000000000000011111
*注:*对于移位运算,不能移动负数位
即 num>>-1; //error
位运算符
& 按位与:同为1时为1,有0即为0;
| 按位或:有1即为1,同0才是0;
^ 按位异或 :同为0,异为1.
赋值运算符
= 可以给变量赋给你想要的值。
例如: int a = 10;
赋值运算符可以连续赋值使用,但是为了美观,清晰分开赋值更好一点。
还有种复合赋值赋,它在赋值运算符的基础上增加了一个运算的过程。
复合赋值符有:+= *= -= /= %= &= ^= |= >>= <<=
例如:a+=1;
与 a = a + 1;
表示同样的含义,执行同样的操作,其余复合运算符效果类似。
单目操作符
! 逻辑反操作

  • 负值
  • 正值
    & 取地址
    sizeof 操作数的类型长度(以字节为单位)
    ~ 对一个数的二进制按位取反
    – 前置、后置–
    ++ 前置、后置++
  • 间接访问操作符(解引用操作符)
    (类型) 强制类型转换
    *注:*sizeof() 是求变量(类型)所占空间的大小,单位是字节。
    例如:sizeof( int ); //4
    sizeof( char ); //2
    求数组arr[]的元素个数时应该: sizeof(arr) / sizeof(arr[0]);
    ++ – 运算符在前置的时候是先++(–)再运算,而在后置是先运算在++(–)。
    关系运算符

大于
大于等于
< 小于
<= 小于等于
!= 不相等
== 相等

逻辑运算符
&& 逻辑与
|| 逻辑或
&&执行时左边为0,便不执行右边返回0;
|| 执行时左边为1,就不执行后面返回1。
条件操作符
exp1 ? exp2 : exp3
若exp1满足则执行exp2否则exp3.
逗号表达式
exp1,exp2,exp3,……
逗号表达式从左到右依次执行,整个表达式的结果的最后一个表达式的结果。
下标引用、函数调用和结构成员
1.下标引用操作符 []
例如 : arr [ ];
2.函数调用操作符 ()
函数名 (参数)
3.结构成员操作符 . ->
访问一个结构体的成员。

#include <stdio.h>
struct Stu
{
char name[10];
int age;
char sex[5];
double score;
};
void set_age1(struct Stu stu)
{
stu.age = 18;
}
void set_age2(struct Stu* pStu)
{
pStu->age = 18;//结构成员访问
}
int main()
{
struct Stu stu;
struct Stu* pStu = &stu;//结构成员访问
stu.age = 20;//结构成员访问
set_age1(stu);
pStu->age = 20;//结构成员访问
set_age2(pStu);
return 0;
}

操作符的属性
复杂表达式的求值有三个影响的因素。

  1. 操作符的优先级
  2. 操作符的结合性
  3. 是否控制求值顺序。
    两个相邻的操作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。
    操作符优先级
资源下载链接为: https://pan.quark.cn/s/0c983733fad2 本文主要回顾了2021年之前及2021年中国科学技术大学软件学院(简称&ldquo;中科大软院&rdquo;)高级软件工程(MN)专业的考试情况,重点聚焦于编程题。编程题在考试中的占比断提高,因此考生需要深入理解这些题目及其解题方法。 中科大软院的高级软件工程专业致力于培养具备深厚理论基础和强大实践能力的高级软件人才。课程设计注重理论与实践相结合,以满足软件行业对高素质工程师的需求。考试内容通常涵盖计算机基础知识、软件工程理论、编程语言、数据结构与算法、操作系统、数据库系统等多个领域。2021年的考试中,编程题的比重进一步提升,这体现了学院对学生实际编程能力和问题解决能力的重视。 编程题通常涉及常见的编程问题,例如字符串处理、数组操作、递归算法、图论问题等,也可能包括网络编程、数据库查询或系统设计等特定领域的应用。考生需要熟练掌握至少一种编程语言,如C++、Java、Python等,并具备较强的算法分析和实现能力。在解题过程中,考生需要注意以下几点:一是准确理解题目要求,避免因误解而导致错误;二是合理选择并设计算法,考虑时间复杂度和空间复杂度,追求高效性;三是遵循良好的编程规范,注重代码的可读性和可维护性;四是考虑边界条件和异常情况,编写健壮的代码;五是编写测试用例,对代码进行充分测试,及时发现并修复问题。 对于备考的同学,建议多做历年试题,尤其是编程题,以熟悉题型和解题思路。同时,可以参加编程竞赛或在在线编程平台(如LeetCode、HackerRank)进行实战训练,提升编程和问题解决能力。此外,关注PPT中的编程代码也很关键,因为这些代码可能是老师给出的示例或解题思路,能够帮助学生更好地理解和掌握编程题的解法。因此,考生需要深入学习PPT内容,理解代码逻辑,并学会将其应用到实际编程题目中。 总之,对于
资源下载链接为: https://pan.quark.cn/s/5c50e6120579 在Android移动应用开发中,定位功能扮演着极为关键的角色,尤其是在提供导航、本地搜索等服务时,它能够帮助应用获取用户的位置信息。以&ldquo;baiduGPS.rar&rdquo;为例,这是一个基于百度地图API实现定位功能的示例项目,旨在展示如何在Android应用中集成百度地图的GPS定位服务。以下是对该技术的详细阐述。 百度地图API简介 百度地图API是由百度提供的一系列开放接口,开发者可以利用这些接口将百度地图的功能集成到自己的应用中,涵盖地图展示、定位、路径规划等多个方面。借助它,开发者能够开发出满足同业务需求的定制化地图应用。 Android定位方式 Android系统支持多种定位方式,包括GPS(全球定位系统)和网络定位(通过Wi-Fi及移动网络)。开发者可以根据应用的具体需求选择合适的定位方法。在本示例中,主要采用GPS实现高精度定位。 权限声明 在Android应用中使用定位功能前,必须在Manifest.xml文件中声明相关权限。例如,添加&lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; /&gt;,以获取用户的精确位置信息。 百度地图SDK初始化 集成百度地图API时,需要在应用启动时初始化地图SDK。通常在Application类或Activity的onCreate()方法中调用BMapManager.init(),并设置回调监听器以处理初始化结果。 MapView的创建 在布局文件中添加MapView组件,它是地图显示的基础。通过设置其属性(如mapType、zoomLevel等),可以控制地图的显示效果。 定位服务的管理 使用百度地图API的LocationClient类来管理定位服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值