操作符详解

文章目录

  1. 操作符分类
  2. 算术操作符
  3. 移位操作符
  4. 位操作符
  5. 赋值操作符
  6. 单目操作符
  7. 关系操作符
  8. 逻辑操作符

文章内容

1.操作符分类

算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员

2.算术操作符

     +    -    *    /    %

    1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
    2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
    3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。

 除法

    1.整数除法(除号的两端都是整数)

     2.浮点数除法(除号的两端只要有一个小数就执行小数除法)

3.移位操作符 

<< 左移操作符
>> 右移操作符
 
注:移位操作符的操作数只能是整数。

3.1 左移操作符
移位规则:
左边抛弃、右边补0

3.2 右移操作符
移位规则:
首先右移运算分两种:

    1. 逻辑移位
 左边用0填充,右边丢弃
     2. 算术移位
 左边用原该值的符号位填充,右边丢弃

警告⚠ :
对于移位运算符,不要移动负数位,这个是标准未定义的。
例如:

int num = 10;
num>>-1;//error

4.位操作符

位操作符有:

  & //按位与
  | //按位或
  ^ //按位异或
  注:他们的操作数必须是整数。 

练习一下:

#include <stdio.h>
int main()
{
int num1 = 1;
int num2 = 2;
num1 & num2;
num1 | num2;
num1 ^ num2;
return 0;
}

  一道变态的面试题:
     不能创建临时变量(第三个变量),实现两个数的交换。(按位异或支持交换律 即a^a^b == a^b^a) 

#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}

5.赋值操作符 

赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。

复合赋值符

+=
-=
*=
/=
%=
>>=
<<=
&=
|=
^=

这些运算符都可以写成复合的效果。比如:

int x = 10;
x = x+10;
x += 10;//复合赋值
//其他运算符一样的道理。这样写更加简洁。

6.单目操作符 

6.1 单目操作符介绍(单目操作符只有一个操作数)

  !      逻辑反操作
  -      负值
  +      正值
  &      取地址
  sizeof    操作数的类型长度(以字节为单位)
  ~      对一个数的二进制按位取反
  --      前置、后置--
  ++      前置、后置++
  *      间接访问操作符(解引用操作符)

  (&  * )应用于指针
 (类型)    强制类型转换

 关于sizeof其实我们之前已经见过了,可以求变量(类型)所占空间的大小。

7.关系操作符 

关系操作符

 >
 >=
 <
 <=
 !=  用于测试“不相等”
 ==    用于测试“相等”

这些关系运算符比较简单,没什么可讲的,但是我们要注意一些运算符使用时候的陷阱。
警告:
在编程的过程中== 和=不小心写错,导致的错误。

注意:

        在C语言中,关系操作符(如 ==!=<<=>>=)有返回值,但这个返回值不是传统意义上的“返回给某个变量”的值,而是直接作为表达式的结果。这些操作符用于比较两个操作数,并根据比较的结果返回布尔值(在C语言中,这通常是通过返回整数 1(真)或 0(假)来实现的,尽管C语言标准本身并不直接支持布尔类型,但<stdbool.h>头文件提供了booltruefalse的定义,这些在C99及之后的版本中是可选的)。

        然而,在C语言的实际使用中,你通常会看到这些关系操作符被用在条件语句(如if语句)或循环语句(如whilefor循环)中,以及作为逻辑操作符(如&&||!)的操作数。在这些情况下,你并不直接“接收”这些操作符的返回值,而是根据它们的返回值来决定程序的流程。

8.逻辑操作符

逻辑操作符有哪些:

  &&   逻辑与
  ||      逻辑或

区分逻辑与和按位与
区分逻辑或和按位或

1&2----->0
1&&2---->1
1|2----->3
1||2---->1

逻辑与和或的特点:

#include <stdio.h>
int main()
{
  int i = 0,a=0,b=2,c =3,d=4;
  i = a++ && ++b && d++;  //   &&左边为假 , 右边不再计算
  //i = a++||++b||d++; //  ||这个左边为真,右边不再计算
  printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
  return 0;
}

下载方式:https://pan.quark.cn/s/c9b9b647468b ### 初级JSP程序设计教程核心内容解析#### 一、JSP基础概述JSP(JavaServer Pages)是由Sun Microsystems公司创建的一种动态网页技术规范,主要应用于构建动态网站及Web应用。JSP技术使得开发者能够将动态数据与静态HTML文档整合,从而实现网页内容的灵活性和可变性。##### JSP的显著特性:1. **动态与静态内容的分离**:JSP技术支持将动态数据(例如数据库查询结果、实时时间等)嵌入到静态HTML文档中。这种设计方法增强了网页的适应性和可维护性。2. **易用性**:开发者可以利用常规的HTML编辑工具来编写静态部分,并通过简化的标签技术将动态内容集成到页面中。3. **跨平台兼容性**:基于Java平台的JSP具有优良的跨操作系统运行能力,能够在多种不同的系统环境中稳定工作。4. **强大的后台支持**:JSP能够通过JavaBean组件访问后端数据库及其他资源,以实现复杂的数据处理逻辑。5. **执行效率高**:JSP页面在初次被请求时会被转换为Servlet,随后的请求可以直接执行编译后的Servlet代码,从而提升了服务响应的效率。#### 二、JSP指令的运用JSP指令用于设定整个JSP页面的行为规范。这些指令通常放置在页面的顶部,向JSP容器提供处理页面的相关指导信息。##### 主要的指令类型:1. **Page指令**: - **语法结构**:`<%@ page attribute="value" %>` - **功能**:定义整个JSP页面的运行特性,如设定页面编码格式、错误处理机制等。 - **实例**: ...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值