鹏哥C语言71---逻辑操作符+条件操作符+逗号操作符

embedded/2024/10/9 6:09:15/

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>

//--------------------------------------------------------------------------------------------8. 逻辑操作符
// &&  逻辑与  (全真则真,一假则假)-----生活中的并且
//  ||     逻辑或  (有真则真)-----生活中的或者
// 与按位与&,按位或 | 区分
// 逻辑与&&或 || 只关注操作数的真假

int main()
{int a = 3;int b = 5;int c = 0;int d = 0;int m = a && b;printf("%d\n", m); //1int n = a && c;printf("%d\n", n);// 0int x = b || c;printf("%d\n", x);// 1int y = c || d;printf("%d\n", y);// 0return 0;
}

//判断闰年的的规则
// 1.能被4整除,不能被100整除
// 2.能被400整除

int is_leap_year(int x)
{if ((x % 4 == 0 && x % 100 != 0)|| (x % 400 == 0)) // &&  ||return 1;elsereturn 0;
}int main()
{int year = 0;while(1){scanf("%d", &year);int ret = is_leap_year(year);if (ret == 1)printf("是闰年\n");elseprintf("不是闰年\n");}return 0;
}

// &&  逻辑与,左边为假0,右边就不计算了
//   ||    逻辑或,左边位真1,右边就不计算了
//-----------------------------------------------------------------------练习

int main()
{//int i = 0, a = 0, b = 2, c = 3, d = 4;//i = a++ && ++b && d++; // a=0先使用后,0&&任何都为0,所以后边的不算了,不再运行//printf("a =%d b=%d c=%d d=%d\n", a, b, c, d); // 1 2 3 4int i = 0, a = 0, b = 2, c = 3, d = 4;i = a++ || ++b || d++;  printf("a =%d b=%d c=%d d=%d\n", a, b, c, d); // 1 3 3 4//int j = 0, x = 1, y = 2, z = 3, h = 4;//j = x++ && ++y && h++; //printf("x =%d y=%d z=%d h=%d\n", x, y, z, h); // 2 3 3 5int j = 0, x = 1, y = 2, z = 3, h = 4;j = x++||++y||h++;printf("x =%d y=%d z=%d h=%d\n", x, y, z, h); // 2 2 3 4return 0;
}

//----------------------------------------------------------------------------------9. 条件操作符(三目操作符)
// 表达式1?表达式2:表达式3
//      真          执行          ×
//      假           ×            执行
//-----------------------------------------------------------------------练习1

int main()
{int a = 3;int b = 0;//if (a > 5)//    b = 3;//else//    b = -3;
// 改成三目操作符(a > 5) ? (b = 3) : (b = -3);b = (a > 5 ? 3 : -3); //更简洁return 0;
}

//三目操作符不必过于复杂//-----------------------------------------------------------------------练习2:使用条件表达式找两个数中较大值
//简简单单

int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int max = (a - b > 0 ? a : b);printf("%d\n", max);return 0;
}

//-------------------------------------------------------------------------------------------------10. 逗号表达式
//表达式1,表达式2,表达式3,...表达式n
//逗号表达式,就是用逗号隔开的多个表达式,
//逗号表达式,从左到右依次执行。整个表达式的结果是最后一个表达式的结果!!!!!

int main()
{//--------------------------代码1int a = 1;int b = 2;int c = (a > b, a = b + 10, a, b = a + 1);//c是多少 ?//-------------------------代码2if (a = b + 1, c = a / 2, c > 0)//-------------------------代码3a = get_val();count_val(a);while (a > 0){//业务处理a = get_val();count_val();}//改用逗号表达式while (a = get_val(), count_val(a), a > 0){//业务处理}return 0;
}

//------------------------------------------------------------------------11. 下标引用,函数调用,结构成员
//----------------------------------11.1 下标引用操作符 []
// 访问数组

int main()
{int arr[10] = {0};arr[7] = 8; // []操作符   操作数是 arr 和 7*(arr + 7);// arr是数组首地址,arr+7就是跳过了7个元素,指向第8个元素,因此 *(arr + 7)也就是 arr[7]*(7 + arr);//加法交换律7[arr]; // []操作符   操作数是 7 和 arrreturn 0;
}

//----------------------------------函数调用操作符 ()

//函数定义
int Add(int x, int y)
{
}int main()
{int a = 10;int b = 20;//函数调用int c = Add(a, b); //  ( ) 函数调用操作符 ,操作数是 Add, a, b// ( ) 函数调用操作符,至少有一个操作符,就是函数名return 0;
}

//----------------------------------结构成员操作符 ->  .
//结构体指针->成员
//结构体对象.成员

struct Stu
{char name[20];int age;double score;
};void set_stu(struct Stu* ps)
{//strcpy((*ps).name, "zhangsan");  //头文件 #include <string.h>//(*ps).age = 20;//(*ps).score = 100.0;//--------------------------------------------简化strcpy(ps->name, "zhangsan");// 操作符  ->                结构体指针->成员ps->age = 20;ps->score = 100.0;//   (*ps).age 等价于 ps->age  等价于 ss.age
}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;
}


 


http://www.ppmy.cn/embedded/124911.html

相关文章

linux自动挂载tf卡

本人使用的是armbian系统&#xff0c;ssh工具使用的是finalshell&#xff0c;挂载的是一张64G TF卡。 1.查看系统所检测到的磁盘&#xff0c;这里的 sda1检测到的硬盘但是没有被挂载 lsblk //查看信息 2.在根目录新建一个目录tfcard用于挂载硬盘&#xff0c;命令如下&#xf…

Vxe UI vue vxe-table 实现表格单元格选中功能

Vxe UI vue vxe-table 实现表格单元格选中功能 在表格中实现鼠标点击任意单元格&#xff0c;选取的功能&#xff0c;通过 mouse-config 配置就可以开启单选功能&#xff0c;多选单元格选取功能需安装插件支持。 代码 参数说明 mouse-config 鼠标配置项&#xff1a; selected&…

随笔(四)——代码优化

文章目录 前言1.原本代码2.新增逻辑3.优化逻辑 前言 原逻辑&#xff1a;后端data数据中返回数组&#xff0c;数组中有两个对象&#xff0c;一个是属性指标&#xff0c;一个是应用指标&#xff0c;根据这两个指标展示不同的多选框 1.原本代码 getIndicatorRange(indexReportLi…

数据结构之——二叉树

一、二叉树的基本概念 二叉树是数据结构中的重要概念&#xff0c;每个节点最多有两个子树&#xff0c;分别为左子树和右子树。这种结构具有明确的层次性和特定的性质。 二叉树有五种基本形态&#xff1a; 空二叉树&#xff1a;没有任何节点。只有一个根结点的二叉树&#xff…

[C++ 核心编程]笔记 2 栈区和堆区

栈区: 由编译器自动分配释放&#xff0c;存放函数的参数值,同部变量等 注意事项&#xff1a;不要返回局部变量的地址&#xff0c;栈区开辟的数据由编译器自动释放 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std;//栈区数据注意事项 不要…

Premiere Pro 3D空间报纸转场特效视频模板MOGRT

14种独特而时尚的Premiere Pro 3D报纸转场视频过渡模板mogrt&#xff0c;可轻松集成到Adobe Premiere Pro中&#xff0c;为您的视频提供新鲜动态的外观。这些过渡非常适合创建引人入胜的内容&#xff0c;如音乐视频、时尚视频和其他多媒体项目&#xff0c;其灵感来自报纸主题&a…

爬虫——XPath基本用法

第一章XML 一、xml简介 1.什么是XML&#xff1f; 1&#xff0c;XML指可扩展标记语言 2&#xff0c;XML是一种标记语言&#xff0c;类似于HTML 3&#xff0c;XML的设计宗旨是传输数据&#xff0c;而非显示数据 4&#xff0c;XML标签需要我们自己自定义 5&#xff0c;XML被…

软考系统分析师知识点五:数据通信与计算机网络

前言 今年报考了11月份的软考高级&#xff1a;系统分析师。 考试时间为&#xff1a;11月9日。 倒计时&#xff1a;32天。 目标&#xff1a;优先应试&#xff0c;其次学习&#xff0c;再次实践。 复习计划第一阶段&#xff1a;扫平基础知识点&#xff0c;仅抽取有用信息&am…