news 2025/12/30 9:05:19

续操作符详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
续操作符详解

int main()
{
int a = 0;
//~ 是按二进制位取反
//00000000000000000000000000000000 - 补码
//00000000000000000000000000000000 - 补码
//11111111111111111111111111111111 -> ~a
//11111111111111111111111111111110
//10000000000000000000000000000001
//-1
printf("%d\n", ~a);//-1

return 0;
}
运行结果为-1

int main()
{
int a = 3;
//int b = ++a;//前置++, 先++, 后使用
//a=a+1,b=a;
int b = a++;//后置++, 先使用, 再++
//b=a, a=a+1
printf("%d\n", a);//
printf("%d\n", b);//
return 0;
}
运行结果为4
3

int a = 10;
printf("%d\n", a--);//?
printf("%d\n", a);//?
return 0;
}
运行结果为10
9

int main()
{
int a = 10;
int* p = &a;
*p = 20;
printf("%d\n", a);
return 0;
}
运行结果为20


int main()
{
int a = 0;
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof a);//ok

//printf("%d\n", sizeof int);//err
return 0;
}
//sizeof是操作符, 不是函数
//strlen是库函数, 是用来求字符串长度

6.关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”


int main()
{
if (3 == 5)
{
}
//err
if ("abc" == "abcdef")//这样写是在比较2个字符串的首字符的地址
{
}
//两个字符串比较相等应该使用strcmp
return 0;
}

7.逻辑操作符
&& 逻辑与
|| 逻辑或

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

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


int main()
{
int a = 3;
int b = 5;
int c = a && b;
printf("%d\n", c);
//if (a && b)
//{

//}
return 0;
}

例题://1. 能被4整除,并且不能被100整除
//2. 能被400整除是闰年
int is_leap_year(int y)
{
if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
{
return 1;
}
else
{
return 0;
}
}

int main()
{
return 0;
}


#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\nb = %d\nc = %d\nd = %d\n", a, b, c, d);
return 0;
}
a = 1
b = 2
c = 3
d = 4


8.条件操作符(三目操作符)
表达式1?表达式2:表达式3
真 ✓ ×
假 × ✓

int main()
{
int a = 3;
int b = 0;

int max = (a > b ? a : b);

if (a > 5)
b = 3;
else
b = -3;

(a > 5) ? (b = 3) : (b = -3);

b = (a > 5 ? 3 : -3);

return 0;
}
9. 逗号表达式
exp1, exp2, exp3, ...expN

逗号表达式,就是用逗号隔开的多个表达式
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
int main()
{
int a = 1;
int b = 2;
int c = (a > b, a = b + 10, a, b = a + 1);
printf("c=%d\n", c);
return 0;
}
运行结果为c=13
10.下标引用、函数调用和结构成员
(1) [] 下标引用操作符
操作数: 一个数组名 + 一个索引值

(2)( ) 函数调用操作符
接受一个或者多个操作数: 第一个操作数是函数名, 剩余的操作数就是传递给函数的参数。

(3)访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名

// 下标引用相关代码
int main()
{
int arr[10] = { 0 };
// arr[7] --> *(arr+7) --> *(7+arr) --> 7[arr]
// arr是数组首元素的地址
// arr+7就是跳过7个元素, 指向了第8个元素
// *(arr+7) 就是第8个元素
//
arr[7] = 8;
7[arr] = 9;

//[] arr 7
//3 + 5;
//5 + 3;
return 0;
}

// 函数调用相关代码
//函数定义
int Add(int x, int y)
{
return x + y;
}

int main()
{
int a = 10;
int b = 20;
//函数调用
int c = Add(a, b);//() 就是函数调用操作符,操作数: Add,a,b
//
//sizeof a;
return 0;
}


// 结构成员相关代码
include <string.h>
struct Stu
{
char name[20];
int age;
double score;
};

void set_stu(struct Stu* ps)
{
strcpy((*ps).name, "zhangsan");
(*ps).age = 20;
(*ps).score = 100.0;
}

void print_stu(struct Stu ss)
{
printf("%s %d %lf\n", ss.name, ss.age, ss.score);
}

int main()
{
struct Stu s = {0};
set_stu(&s);
print_stu(s);
return 0;
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 3:38:31

HTTP 协议详解,HTTP 协议在真实运行环境中的表现差异

真正让我重新认真看 HTTP 协议&#xff0c;并不是在读 RFC 的时候&#xff0c;而是在一次接口问题排查中。 当时的问题并不复杂&#xff1a; 同一个接口&#xff0c;在不同网络环境下返回结果不一致&#xff1b;有时状态码正常&#xff0c;但客户端行为异常&#xff1b;有时服务…

作者头像 李华
网站建设 2025/12/18 23:50:41

【Hadoop+Spark+python毕设】天猫订单交易数据可视化分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、实战教学

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

作者头像 李华
网站建设 2025/12/18 23:50:23

python-flask-django基于Web的在线考试答题游戏的设计与实现_5o5sjig8

文章目录系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统截图 python-flask-django基于Web的在线考试答题游戏的设计与实现_5o5sjig8 项目技术简介 Pyth…

作者头像 李华
网站建设 2025/12/18 23:49:57

免费彻底解决找不到d3dx10_38.dll文件 无法运行软件和游戏问题

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2025/12/18 23:49:44

Mac_Linux 查询网站IP地址:4个核心命令详解

Mac/Linux 查询网站IP地址&#xff1a;4个核心命令详解 在日常开发、网络排查或学习过程中&#xff0c;我们经常需要知道某个网站对应的IP地址&#xff08;比如确认域名解析是否正常、判断访问延迟的原因等&#xff09;。在Mac和Linux系统下&#xff0c;无需安装额外工具&#…

作者头像 李华
网站建设 2025/12/18 23:48:32

ArcGIS大师之路500技---034重采样算法选择

文章目录前言1. 最邻近分配法&#xff08;Nearest Neighbor Assignment&#xff09;2. 双线性插值法&#xff08;Bilinear Interpolation&#xff09;3. 三次卷积插值法&#xff08;Cubic Convolution Interpolation&#xff09;4. 众数重采样法&#xff08;Mode Resampling / …

作者头像 李华