iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言入门篇--充分理解操作符
  • 760
分享到

C语言入门篇--充分理解操作符

2024-04-02 19:04:59 760人浏览 薄情痞子
摘要

目录1.算术操作符1.1除法运算1.2取模运算2.移位操作符相关知识1.移位运算是站在二进制角度移位的2.左移右移,原始变量值不发生变化除非给原始变量赋值4.C语言中的移位运算符5.

1.算术操作符

+ 加
- 减
* 乘
/ 除
% 取模

1.1除法运算

除法运算分母不可为零,否则程序会中断报错,所以要在程序中检验分母是否为零。

1.2取模运算

取模即取余数。

2.移位操作符

相关知识

>> 右移
<< 左移

1.移位运算是站在二进制角度移位的

eg:


#include <stdio.h>
int main()
{
	int x = 15;
	printf("%d\n", x>>1);
	printf("%d\n", x<<1);
	printf("%d\n", x);
	x = x >> 1;
	printf("%d\n", x);
	return 0;
}

在这里插入图片描述

2.左移右移,原始变量值不发生变化除非给原始变量赋值

3.整数移位运算不能整除时,只保留整数部分

4.C语言中的移位运算符

(如<<>>)只能用于整型(如intshortlongchar等),不能用于浮点型(如doublefloat

5.移位分为算术移左移、算术移右移和逻辑左移、逻辑右移

算术左移和算术右移主要用来进行有符号数的倍增、减半;

逻辑左移和逻辑右移主要用来进行无符号数的倍增、减半。

3.位操作符

位操作是站在二进制角度进行操作的。

& 按位与
| 按位或
^ 按位异或

3.1按位与&

eg:

参与按位与的两二进制位数都为真(1)结果为真,否则只要有一个为假(0)结果为假。


#include <stdio.h>
int main()
{
	printf("%d\n", 1 & 1);
	printf("%d\n", 0 & 1);
	printf("%d\n", 1 & 0);
	printf("%d\n", 0 & 0);
	printf("%d\n", 2 & 6);	
	return 0;
}

在这里插入图片描述

3.2按位或 |

参与按位与的两二进制位数只要有一个为真(1)结果为真,若都为假(0)结果为假。

eg:


#include <stdio.h>
int main()
{
	printf("%d\n", 1 | 1);
	printf("%d\n", 0 | 1);
	printf("%d\n", 1 | 0);
	printf("%d\n", 0 | 0);
	printf("%d\n", 2 | 6);
	return 0;
}

在这里插入图片描述

3.3异或 ^

参与按位与的两二进制位数相同为假,不同为真。

eg:


#include <stdio.h>
int main()
{
	printf("%d\n", 1 ^ 1);
	printf("%d\n", 0 ^ 1);
	printf("%d\n", 1 ^ 0);
	printf("%d\n", 0 ^ 0);
	printf("%d\n", 2 ^ 6);
	return 0;
}

在这里插入图片描述

4.赋值操作符

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


#include <stdio.h>
int main()
{
	int x1 = 0;
	x1 = 10;//赋值 从右向左赋值
	printf("%d\n", x1);
	int x2 = 20;
	x2 += 10;//加等 等价于x=x+10; //其他操作符类似
	printf("%d\n", x2);
	return 0;
}

在这里插入图片描述

5.单目操作符

单目操作符即只有一个操作数的操作符。

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

5.1 逻辑反操作 !

逻辑真–>非0

逻辑假–>0

eg:


#include<stdio.h>
int main()
{
	int flag = 1;
	if (!flag)//(flag==1)条件为真即非零,取反(!)后if条件为假即0
	{
		printf("if条件为真!\n");
	}
	else
	{
		printf("if条件为假!\n");
	}
	return 0;
}

在这里插入图片描述

5.2 负值 - 正值 +

给数字前带+ -变成对应的正数或负数。

eg:


#include <stdio.h>
#include <windows.h>
int main()
{
	int x1 = 10;
	printf("%d\n", +x1);
	printf("%d\n", -x1);
	int x2 = -10;
	printf("%d\n", +x2);
	printf("%d\n", -x2);
	return 0;
}

在这里插入图片描述

5.3 取地址 &

每个变量在内存中都有对应的地址。

eg:


#include <stdio.h>
int main()
{
	int x = 10;
	printf("%d\n", x);
	printf("0x%p\n", &x);//%p:以十六进制打印地址;加0x:为了打印出来的是变量所对应的标准地址。
	return 0;
}

在这里插入图片描述

5.4 取反 ~

对一个数的二进制按位取反。

eg:


#include <stdio.h>
int main()
{
	unsigned x = 1;
	printf("%u\n", x);
	printf("%u\n", ~x);
	return 0;
}

在这里插入图片描述

5.5 前置、后置 ++ - -

++i :前置++,先自增再赋值使用。

i++ :后置++,先赋值使用再自增。

(- -同理)

eg:


#include <stdio.h>
int main()
{
	int i = 3;
	int a = i++;
	printf("%d\n", i);
	printf("%d\n", a);
	///
	int j = 10;
	int b = ++j;
	printf("%d\n", j);
	printf("%d\n", b);	
	return 0;
}

在这里插入图片描述

5.6 解引用操作符 *

eg:关于解引用操作符 的理解以看变量的左值与右值。


#include <windows.h>
int main()
{
	int a = 10;
	int *p = &a;//指针p指向变量a
	int b=*p;//*p即解引用指针p,取出指针p所指地址空间里的值,然后赋给变量b
	printf("%d\n", b);
	return 0;
}

在这里插入图片描述

5.7 强制类型转换 (类型)

强制类型转换是把变量从一种类型转换为另一种数据类型。

强制类型转换分为隐式转换和显示转换。

eg:


#include <stdio.h>
int main()
{
	int a = 10;
	double b = 3.456;
	a = b;//隐式转换
	printf("%d\n", a);
    ///
	int c = 20;
	double d = 5.555;
	c = (int)d;//显式转换
	printf("%d\n", c);	
	return 0;
}

在这里插入图片描述

6.关系操作符

关系操作符就是用来判断大小关系。

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

7.逻辑操作符

&&     逻辑与
||     逻辑或

&& 两边的表达式都为真,结果为真。

| | 两边的表达式只要有一个为真,结果为真。

注意:

&&和| |的判断规则:

&& 若第一个表达式为假,结果为假,则不判断第二个表达式。

| | 若第一个表达式为真,结果为真,则不判断第二个表达式。

8.条件操作符

exp1 ? exp2 : exp3//又称三目操作符,它是唯一有3个操作数的运算符

若表达式exp1为真,则执行exp2;
若表达式exp1为假,则执行exp3;

9.逗号表达式

1.逗号表达式中的每个表达式都会执行。

2.逗号表达式中的结果为最后一个表达式的值。

3.可以用()隔开逗号表达式。

exp1, exp2, exp3, …expN

eg:


#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	int d = ((c=a+b), 2, 3, 4, 5, 6, 7);
	printf("c=%d\n", c);
	printf("d=%d\n", d);
	return 0;
}

在这里插入图片描述

10.下标引用、函数调用和结构成员

[] //中括号操作符,访问要访问元素的内容
() //函数访问操作符,要调用函数就要在函数名后加(),若函数有参数,则把参数填入()
.  //结构体成员运算符,左边必须为实体即变量
-> //结构体指针运算符,左边必须为指针

以上就是C语言入门篇--充分理解操作符的详细内容,更多关于C语言操作符的资料请关注编程网其它相关文章!

--结束END--

本文标题: C语言入门篇--充分理解操作符

本文链接: https://www.lsjlt.com/news/133729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言入门篇--充分理解操作符
    目录1.算术操作符1.1除法运算1.2取模运算2.移位操作符相关知识1.移位运算是站在二进制角度移位的2.左移右移,原始变量值不发生变化除非给原始变量赋值4.C语言中的移位运算符5....
    99+
    2022-11-12
  • 一篇文章带你入门C语言:操作符
    目录操作符分类算术操作符移位操作符整数存储规则左右移位规则赋值操作符单目操作符取地址操作符& 解引用操作符*类型长度操作符sizeof按位取反操作符~++ -- 操作符强制类...
    99+
    2022-11-12
  • C语言各种操作符透彻理解上篇
    前言:在我们程序编写领域,操作符给我们提供了很多的运算便利,但操作符琳琅满目,我们要怎样用好它们呢,下面就带你来熟悉熟悉这些多样的操作符。 操作符分类: 算术操作符 、移位操作符 、...
    99+
    2022-11-13
  • C语言各种操作符透彻理解下篇
    1.单目操作符 之前有了解到的三目操作符(?:),指的是有三个操作数 例如:3+5 其中,+是一个操作符 3是左操作数 5是有操作数 +则是一个双目操作符 那么什么是单目操作符呢,也...
    99+
    2022-11-13
  • C语言入门基础之操作符的示例分析
    这篇文章给大家分享的是有关C语言入门基础之操作符的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。操作符首先第一部分操作符分类如上,具体不再用文字阐述。算术操作符首先算术操作符,有除号值得一讲,若想得浮点数...
    99+
    2023-06-20
  • C语言入门篇--理解地址及内存
    1.内存 内存是电脑中一个重要的存储器,计算机中所有的程序都在内存中运行的,内存的性能对计算机的影响非常大。 内存是计算机与CPU进行沟通的桥梁,计算机会把程序由硬...
    99+
    2022-11-12
  • C语言操作符超详细讲解下篇
    目录前言赋值操作符单目操作符单目操作符介绍sizeof 和 数组关系操作符逻辑操作符条件操作符逗号表达式下标引用与函数调用和结构成员[ ] 下标引用操作符( ) 函数调用操作符访问一...
    99+
    2022-11-13
  • C语言操作符超详细讲解上篇
    目录前言1、操作符的分类2、算术操作符3、移位操作符3.1 左移操作符3.1.1 正数左移1位3.1.2 负数左移1位3.2 右移操作符3.2.1 正数右移1位3.2.2 负数右移1...
    99+
    2022-11-13
  • C语言入门篇--关键字static详解
    目录1.修饰局部变量1.1作用1.2举例(1)不加static(2)加static(3)静态局部变量的初始化只会进行一次2.修饰全局变量2.1作用2.2举例(1)不加static(2...
    99+
    2022-11-12
  • C语言入门篇--字符串的基本理论及应用
    目录字符串1.常见字符串的情况2.'\0'的证明3.字符串的用法3.1用数组3.1.1给数组直接赋字符串3.1.2以单个字符赋入数组3.2用指针4.字符串可直接输出字符串 (1)由双...
    99+
    2022-11-12
  • 一篇文章带你了解C语言操作符
    目录一、操作符分类 二、算术操作符三、移位操作符1、左移操作符 2、右移操作符2.1算术移位 2.2逻辑移位 四、位操作符 1、按位...
    99+
    2022-11-12
  • C语言入门篇--sizeof与strlen基础理论
    1.sizeof (1)若求字符串占据 空间 的大小,包括字符串结尾处默认的'\0'。 (2)若所求不是字符串的大小,求的是数组、类型等的大小,不用考虑'\0',因为不是字符串,在结...
    99+
    2022-11-12
  • C语言特殊符号的补充理解
    续接符 反斜杠"",他有两种最常见的功能,一就是续航功能,二就是我们提到反斜杠就会很敏感的转义字符。 if("1==a&&2==b&&am...
    99+
    2022-11-13
  • C语言入门篇--注释,关键字typedef及转义字符详解
    目录注释1.注释意义2.两种注释风格2.1 C语言注释风格2.2 C++注释风格关键字typedef1.注意2.用法语法结构转义字符1.转义字符及其含义2.字面 转 特殊3.特殊 转...
    99+
    2022-11-12
  • C语言文件操作的入门详解教程
    目录一.一些需要掌握的知识点1.文件名2.文件类型3.数据流4.文件缓冲区5.文件指针二.与文件操作相关的一些函数 1.文件的打开及关闭2.文件的顺序读写3.文件的随机读写...
    99+
    2022-11-12
  • 详解C语言之操作符
    目录1.加减乘2.除(/)注意:3.取余(%)注意:4.移位操作符(>> <<)注意5.位操作符(| ,& ,^)6.逻辑操作符(&&...
    99+
    2022-11-12
  • 一篇文章带你了解C语言:入门基础
    目录C语言本身特点数据类型常量变量变量分类使用小建议生命周期作用域常量分类及其特点字符串+转义字符+注释字符串转义字符两种注释选择循环语句函数数组总结闲话少说,先上思维导图。 如图...
    99+
    2022-11-12
  • C语言 操作符分类解析与使用
    目录操作符的分类算术操作符移位操作符位操作符逻辑操作符逗号表达式表达式求值隐式类型转换算术转换操作符的属性xwg今天就带各位大佬来了解一波C语言的操作符。 操作符的分类 常见的操作符...
    99+
    2022-11-12
  • C语言由浅入深讲解文件的操作下篇
    目录文件的顺序读写字符输入输出fgetc和fputcfgetcfputc:文本行输入输出函数fgets和fputsfgets:fputs:格式化输入输出函数fscanf和fprint...
    99+
    2022-11-13
  • C语言由浅入深讲解文件的操作上篇
    目录为什么使用文件什么是文件文件名关于文件的一些概念文件函数fopenfclose实例代码绝对路径文件的打开方式文件操作流程为什么使用文件 前面写的通讯录,增加人数退出程序后,数据就...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作