首页 > 其他分享 >操作符详解

操作符详解

时间:2024-09-20 12:48:36浏览次数:3  
标签:10 struct int 运算符 详解 操作符 进制

目录

进制与进制转化

十进制

二进制 

十六进制 

十进制转化成二进制

二进制转化成八进制

逗号表达式

下标访问与函数调用

[ ] 下标引用操作符

()函数调用操作符

结构成员访问操作符

结构体概念

结构的声明

结构体变量初始化与打印

操作符的属性

优先级

结合性


进制与进制转化

十进制

1. 10进制中满10进1。

2. 10进制的数字每⼀位都是0~9的数字组成。

123=1*10^(3-1)+2*10^(2-1)+3*10^(1-1)

二进制 

1. 2进制中满2进1。

2. 2进制的数字每⼀位都是0~1的数字组成。

1101=1*2^(4-1)+1*2^(3-1)+0*2^(2-1)+1*2^(1-1)

十六进制 

1. 16进制的数字每⼀位是0~9,a ~f 。

2. 16进制表⽰的时候前⾯加0x。

十进制转化成二进制

二进制转化成八进制

1. 在2进制转8进制数的时候,从2进制序列中,右边低位开始向左每3个2进制位会换算⼀个8进制位,剩余不够3个2进制位的直接换算。

2. 0开头的数字,会被当做8进制。

逗号表达式

1. 逗号表达式,就是⽤逗号隔开的多个表达式。

2. 逗号表达式,从左向右依次执⾏。

3. 整个表达式的结果是最后⼀个表达式的结果。

//代码1
int a = 1;
int b = 2;
int c = (a>b, a=b+10, a, b=a+1);//逗号表达式
c是多少?//13

//代码2
if (a =b + 1, c=a / 2, d > 0)//执行

下标访问与函数调用

[ ] 下标引用操作符

int arr[10];//创建数组
arr[9] = 10;//实⽤下标引⽤操作符。
[ ]的两个操作数是arr和9。

()函数调用操作符

#include <stdio.h>
void test1()
{
 printf("hehe\n");
}
void test2(const char *str)
{
 printf("%s\n", str);
}
int main()
{
 test1(); //这⾥的()就是作为函数调⽤操作符。
 test2("hello bit.");//这⾥的()就是函数调⽤操作符。
 return 0;
}

结构成员访问操作符

结构体概念

1. 结构是⼀些值的集合,这些值称为成员变量。

2. 结构的每个成员可以是不同类型的变量,如: 标量、数组、指针,甚⾄是其他结构体。

结构的声明

struct student
{
    char name[20];
    char sex[10];
    int age;
    char id[16];
}s4,s5,s6;//s4,s5,s6都是全局变量
struct student s7 //s7是全局变量
int main()
{
    struct student s1;
    struct student s2;
    struct student s3;
    //s1,s2,s3都是局部变量
}

结构体变量初始化与打印

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	struct point
	{
		int x;
		int y;
	};
	struct point s1 = { 1,2 };//相同类型初始化
	printf("%d %d\n", s1.x, s1.y);//打印结构体

	struct student
	{
		char name[20];
		int age;
		char male[15];
		int id;
	};
	struct student p1 = { "黄舜禹",19,"男",202366 };//不同类型初始化
	struct student p2 = { .name = "黄舜禹2",.age = 18,.male = "女",.id = 202367 };//指定顺序初始化
	printf("%s %d %s %d\n", p1.name, p1.age, p1.male, p2.id);//打印结构体

	struct node
	{
		int num;
		struct point;
		struct student;
	};
	struct node w1= { 20,{1,2},{ "黄舜禹",19,"男",20231111066 }};//结构体嵌套初始化
	return 0;
}

操作符的属性

优先级

1. 如果⼀个表达式包含多个运算符,哪个运算符应该优先执⾏,各种运算符的优先级是 不⼀样的。

2. 可以查找操作符优先级的网站:https://zh.cppreference.com/w/c/language/operator_precedence

3.记住常用的几个优先级:

1.圆括号( () )
2.⾃增运算符( ++ ),⾃减运算符( -- )
3.单⽬运算符( + 和 - )
4.乘法( * ),除法( / )
5.加法( + ),减法( - )
6.关系运算符( < 、 > 等)
7.赋值运算符( = )

结合性

1. 如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符 是左结合,还是右结合,决定执⾏顺序。

2. ⼤部分运算符是左结合(从左到右执⾏),少数运算符是右 结合(从右到左执⾏),⽐如赋值运算符( = )。

标签:10,struct,int,运算符,详解,操作符,进制
From: https://blog.csdn.net/hsy1603914691/article/details/142334222

相关文章

  • 详解 HTTPS、TLS、SSL、HTTP区别和关系
    一、什么是HTTPS、TLS、SSLHTTPS,也称作HTTPoverTLS。TLS的前身是SSL,TLS1.0通常被标示为SSL3.1,TLS1.1为SSL3.2,TLS1.2为SSL3.3。下图描述了在TCP/IP协议栈中TLS(各子协议)和HTTP的关系 二、HTTP和HTTPS协议的区别1、HTTPS协议需要到证书颁发机构(CertificateA......
  • 大模型面试必备:100 道精选八股文题目及其详解
    前言算法暑期实习机会快结束了,校招大考即将来袭。当前就业环境已不再是那个双向奔赴时代了。求职者在变多,岗位在变少,要求还更高了。最近,我们陆续整理了很多大厂的面试题,帮助球友解惑答疑和职业规划,分享了面试中的那些弯弯绕绕。分享100道大模型面试八股文,喜欢记得点赞......
  • Oracle执行计划及性能调优详解使用
    在Oracle数据库中,SQL性能分析是一项非常重要的任务。通过性能分析,我们可以了解SQL语句的执行情况,从而优化其性能。常用的方法包括使用EXPLAINPLAN、自动工作负载库(AWR)、SQLTrace等工具。EXPLAINPLAN是最常用的工具之一,它生成SQL语句的执行计划并提供重要的......
  • RocketMq详解:一、RocketMQ 介绍及基本概念
    文章目录前言1.RocketMQ简介2.RocketMQ特点3.核心特性4.应用场景5.RocketMQ优势6.RocketMQ四大核心组件6.1NameServer1.NameServer作用2.NameServer被设计为无状态的原因3.和NameServer和Zookeeper的区别4.NameServer的高可用保障6.2Broker1.Broker部署方式2.高可用与负......
  • Linux curl命令详解使用
    curl是一个非常强大且灵活的工具,支持多种协议(如HTTP、HTTPS、FTP等),并通过各种选项支持不同的请求方式、认证机制、代理设置、传输限制等。这些参数可以极大地提高网络请求中的效率和灵活性。curl命令的基本语法curl[options][URL...]options:指定不同操作的参数。U......
  • 详解Vue事件总线的原理与应用:EventBus
    Vue事件总线-组件通信的桥梁引言在Vue.js开发中,组件通信是一个重要的话题。Vue提供了多种方式来实现不同组件之间的通信,譬如Props、$emit、Ref实例、Vuex状态管理及事件总线等等,可谓是五花八门,它们之间使用各有优缺点,主要取决于你的使用场景。本篇文章我们主要介绍......
  • C++ | 引用详解
    文章目录C++引用详解一、什么是引用二、引用的语法三、引用的特点1.必须初始化2.与原始对象具有相同的内存地址3.没有独立的存储空间4.传递参数高效四、引用的用途1.函数参数传递2.返回值3.用于实现运算符重载五、引用与指针的区别1.语法2.初始化3.空值4.操......
  • Java JNA、JNI、ProcessBuilder、Runtime.getRuntime.exec()详解
     Java提供了几种方式与非Java代码进行交互(比如调用本地库或执行外部程序),其中包括JNA、JNI、ProcessBuilder和Runtime.getRuntime().exec()。下面是对每种方式的详细解释。1.JNA(JavaNativeAccess)简介JNA是Java与本地代码进行交互的一种高层次API,它允许Java程序调......
  • 基于sqli-labs Less-7 的sql高权读写注入详解
    1.MySQL高权限读写简介1.1前置知识数据库的高权用户对服务器上的文件进行读取写入操作,从而可以进行写入一句话木马来获得服务器权限或者读取服务器上的配置型文件等注入行为。selectload_file('d:/w.txt');#读取w.txtselect'xxx'intooutfile'd:/1.txt';#将xxx写入......
  • Visual Studio 使用GIT详解
    在VisualStudio中使用Git,可以帮助你有效地管理和版本控制代码。下面是详细的步骤和功能概述:1.设置Git仓库打开项目:启动VisualStudio并打开你的项目或解决方案。创建Git仓库:在菜单栏选择“Git”。选择“创建Git仓库”,这会将当前项目初始化为一个Git......