基础之 运算符、表达式

目录

1.运算符与表达式(赋值(补充:复合赋值)、算术、关系、逻辑、条件、自增自减、逗号运算)

何为表达式?

->表达式是指操作符与操作对象连接起来的合法式子

eg.+1、-1、1*2、1/2、2%3、1+2、1-2均为算术表达式

1>赋值、复合运算符与表达式

     (先区分“==”与"=":“==”是相等,“=”是赋值

       常见格式:int 变量=常数;(若前面已经定义变量了,就可以直接写成“变量=常数”,并且其值在后面不能改变。

    eg.int a=1;   //把1赋给整形变量a,不能读成“a等于1”。

         常见错误:

                1.常数=变量;  eg.3=a;

                2.在定义赋值完变量之后又再次赋值

     eg.const int b=1;  b=2;   //在第一次附完值就能近似将变量看为常量,第二次就约等于是“常量=常量”,是错误的。

复合赋值:连续对同一变量进行赋值。

           特点:能更简洁表示。

           表示四则运算:

                         a+=b;  //a=a+b;

                         a-=b;      //a=a-b;

                         a*=b;      //a=a*b;

                         a/=b;      //a=a/b;      ("/"为除,“\"为换行)

2>算术运算符与表达式

   41d91ba1f31842dfbfaa47ab6c671be3.png

运用:计算函数f(x,y)

#include <stdio.h>
//定义函数
double f(int x, int y) {
	return x * x - 2 * y + 5;
} 

//进行运算
int main() {
	double f(int x, int y);  //函数声明
	printf("%lf", f(2, 3));  //函数调用
	return 0;
}

20241126 诶主播刚好今天晚修上完欧阳佳老师的c理论课 又刚好讲了函数定义、声明、调用的区别及运用区分(往后会专门写函数模块)

  函数定义:就是利用函数对变量进行具体的运算(四则运算、比较、赋值等)

            格式:

        返回值类型 f(数据类型 变量,...){

                     return ...(操作);   //返回操作的结果数值。

}

            注意:1.这里函数定义是不能写进任何别的函数(包括主函数),必须单拎出来写

                       2. 返回值类型可谓“void”且“()”可不填写变量及其类型,但此情况很少出现

  函数声明:在调用函数前进行说明(会用到这个函数)

            eg.(上文中)double f(int x,int y);

            注意:1.若函数定义在主函数前,则不用进行函数声明。

                       2.函数声明能嵌套声明,但是不能嵌套定义

  函数调用:在主函数中使用定义函数,并输出结果

3>关系运算符与表达式

  f41d4f3de9a546afaeb6a92b2aa4665f.png

(!!再次区分“==”与"=":“==”是相等,“=”是赋值)

特点:逻辑值(关系运算符的特有)

           逻辑值是关系表达式的结果,逻辑真为1,逻辑假为0。

eg. int a=1,b=4;

      a>b或者a>=b:      逻辑假,其值为0;

      a<b或者a<=b:      逻辑真,其值为1;

      a==b:  逻辑假,其值为0;

      a!=b:      逻辑真,其值为1;

#include <stdio.h>

int main() {
	int a = 1, b = 4;
	printf("%d", a > b);
	return 0;
}

da5f85bf617e451bbce336ba55b25ec8.png

优先级与下面的逻辑运算符一起进行整合~

4>逻辑运算符与表达式

       逻辑运算符:&&("且")、||(“或”)、(“非”)

       “假”:0               “真”:非0值

        4bd13010b64347c8899a4e8c1900865f.png

总结:

         对于&&:有一假就为假,要为真必须全真

         对于||:有一真就为真,全假为假

优先级!!!(非常重要)

     逻辑非!> 算术 > 关系 > 逻辑与&&、逻辑或|| > 赋值=

eg.

#include <stdio.h>

int main(){
	int a;
	a=1+5<8&&2+6||!10+1<3;
	printf("%d",a);
	return 0;
}

其值为1。

解释:由优先级:

                 先非->   !10 为0

                 再算术->  6<8&&8||2<3

                 再关系->  1&&8||1

                 再逻辑->   1||1 ->   即a为1

!!易忘点:短路操作(仅对于逻辑运算符)

         eg.(m=a>b)&&(n=c>d)       、

             1. 若a=1,b=2,c=4,d=3,则m=?,n=?

              由于a>b为逻辑假,对于“&&”:有一假就为假,所以m=0,且n值不知道

             2.若a=2,b=1,c=3,d=4,则m=?,n=?

               由于a>b为逻辑真,对于“||”:有一真就为真,所以m=1,且n值不知道

5>条件运算符(三目运算符)与表达式    唯一一个在c中的三目运算符

       运算符:

                表达式1?表达式2:表达式3

 解释:如果表达式1 的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3 的值作为整个条件表达式的值

#include <stdio.h>

int main() {
	int a, b, max;
	scanf("%d%d", &a, &b);
	max = a > b ? a : b;  //若a>b则max取a,若a<b则max取b
	printf("max=%d", max);
	return 0;
}

若遇到嵌套比较,则需记住:运算方向是自右自左

      比如,a>b?a:c>d?c:d;   -->  a>b?:(c>d?c:d);

6>自增自减运算符与表达式

    相同点:

              i++ 与 ++i 均为自增                 i-- 与 --i 均为自减

    区别:

          i++为前自增   先自增再进行其他操作

          ++i为后自增   先进行其他操作再自增

               (--同理)

7>逗号运算符与表达式

     运算符:

                      表达式1,表达式2

解释::先计算左边的操作数,再计算右边的操作数,右操作数的类型和值作为整个表达式的结果。

在这里推荐下我们欧阳佳老师的941.code!!(直接搜索这个第一个就是了~)特别特别好用 基础题提高题都有!!重要是它免费啊()

f47b26d3a6ba43448b93ee4dd79ee9c4.png

附网址:www.941code.com

7ff4dcd1b1a04f73850f745dc2118f67.jpg

最后,感谢欧阳佳老师的ppt内容及图片!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值