C 运算符和语句总结

运算符:
    C 表达式中的左值和右值:当一个对象被用作左值时,用的是对象的身份(内存中的位置)。当作为右值时,用的是对象的值(内容)。或者说,lvalue:具有存贮性质的对象,通过它能够找到内存中存放的变量。rvalue:存放在lvalue对应内存中的东西。
int a,b;//a,b是持久的对象,是lvalue,而a b是临时对象,为rvalue。a 是右值, a是左值
int *p=&a;//p的左值是它指向的内存,或者说是a在内存中的地址,而右值是通过p找到的值就是a里的值
取模运算%:必须是两个整型类型参与运算,结果的符号决定于运算符左边元素的符号。
逻辑运算符:左侧运算对象是为了确保右侧运算对象求值过程的正确性和安全性----->利用短路求值策略
赋值运算符:如果赋值运算符左右两侧运算对象类型不同,右侧类型转换为左侧
string s1,s2;
s1=s2="ok";//字符串字面值转化为string类型

int i;
double d;
d=i=3.5;//d=3,i=3
i=d=3.6;//d=3.6,i=3遵从右向左赋值
递增递减运算符:除非必须,否则不用递增递减运算符的后置版本,避免做无用功还浪费内存。如果想要一条既能将变量加一又能使用原来的值的语句的时候可用后置。
ival &&ival---->没有必要,运算符两边都是自增前的值。
后自增操作的优先级高于解引用:

*iter --->*(iter ):iter 使得iter加一,然后返回iter的原值的副本作为该表达式的返回值
逗号运算符:按照从左到右依次执行,但是真正的值是最右侧的返回值,例如:
 int a=12,b=11;
    int c=0;
    c=(a b,12);
    cout<<c<

somevalue? x--,y--:x ,y 等价于 (somevalue ? x--,y--:x ),y ;//是个逗号运算符


语句
要注意变量的作用域!
if语句:if(......){}    语句里的判断条件要能转化成bool类型
switch语句:表达式里的返回值要能转化成整型与case标签相比较,case标签必须是整型常量表达式(包括字符,字符串)
switch内部的变量定义问题:因为switch里是根据case标签来执行语句的,因而存在部分语句被跳过而不执行的情况,如果这部分(被跳过)里存在对变量的定义,要执行的地方又使用了该变量,这种情况是非法的,编译器会报错,因而要限定变量的作用域哦!!!!
int a=3;
    switch(a){
    case 1:
        int b=0;
        a ;
      //  break;
    case 3:
        a=b;
        break;//报错:跳过了变量b的初始化
}
try语句块和异常处理:
throw表达式,来段代码感受一下:
 int a,b;
    char ch;
    cout<<"输入两个整型数字"<<endl;
    while(cin>>a>>b){
    try{
        if(b==0)
            throw runtime_error("除数为0");//抛出运行时错误
    }catch(runtime_error err){//可以对应多个catch语句,对应于try里可能抛出的不同的错误处理,像上溢出,下溢出等。
        cout<<err.what()<<endl<<"是否重写两个整数Y or N"<<endl;
        cin>>ch;
        if(ch=='N')
            break;
    }
        cout<<"相除结果为:"<    }
有一种情况是异常没有被捕捉到时,会调用标准库函数里的terminate终止当前程序执行

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 遍历结构体_C#学习笔记05--枚举/结构体

一.枚举当变量的取值范围是固定的几个, 例如性别--男,女; 英雄类型 -- 法师, 刺客.战士, 射手等等. 这时就可以使用枚举类型, 会更加简洁方便.1.1.定义:访问修饰符 enum 枚举类型名 {成员1,成员2,成员3,... }public enum Days{Mon 1,Tue,Wed,Thu,Fri,Sat,Sun}enum: 是枚举的…

C语言中枚举enum的用法

本文举例说明C语言中enum枚举关键字的用法。用来同时定义多个常量利用enum定义月份的例子如下。#include enum week {Mon1,Tue,Wed,Thu,Fri,Sat,Sun}; int main() {printf("%d",Tue); return 0; }这样定义Mon的值为1之后&#xff0c;Tue的值就被默认定义为2&#…

苹果更新未知错误17_iOS 13 新功能,静音未知来电

果粉俱乐部让科技更好的服务生活点击上方「蓝字」加入我们iOS 13 正式版系统已经推出了快三周时间&#xff0c;苹果在新系统当中带来了诸多功能改进&#xff0c;包括大家盼望已久的深色模式&#xff0c;新的音量调节设置&#xff0c;自定义流量下载限制等等。除此之外&#xff…

C/C 语言中extern的用法

声明外部变量现代编译器一般采用按文件编译的方式&#xff0c;因此在编译时&#xff0c;各个文件中定义的全局变量是互相透明的&#xff0c;也就是说&#xff0c;在编译时&#xff0c;全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程&#xff0c;里面含有…

设置公共请求参数_封装一个useFetch实现页面销毁取消请求

前端业务经常会出现这样一类问题&#xff0c;当用户网速过慢或是其他特殊情况下&#xff0c;该页面的请求还未完成&#xff0c;用户就已经点击其他页面跳出去了。理想状态下请求也是应该终止掉的&#xff0c;所以我们应该想办法将请求和页面卸载关联在一起。1 使用AbortControl…

C语言中return的各种用法

按初学的理解&#xff0c;return的任务就是返回对应的参数&#xff0c;在外层函数中对这个参数做进一步处理。实际上return的用法不只这些。为调用的函数返回参数值此类应用最为普遍&#xff0c;通常是在一个具有返回值的函数中&#xff0c;返回一个参数值&#xff0c;这个返回…

代码内查找函数引用_叮~~二级操作题 excel常考函数大梳理

1.AND函数格式&#xff1a;AND(logical1,logical2…)功能&#xff1a;and函数是一个逻辑函数&#xff0c;表示同时满足多个条件。通常配合if函数做条件判断&#xff0c;得值为true或者是false。2.OR函数格式&#xff1a;OR(logical1,logical2…)功能&#xff1a;or函数是一个逻…

总结C语言中的数组知识点

数组&#xff1a;只能存放一种数据类型&#xff0c;比如int类型的数组、float类型的数组&#xff0c;里面存放的数据称为“元素”。数组的定义&#xff1a;首先声明数组的类型&#xff0c;然后声明数组元素的个数&#xff0c;也就是定义需要多少存储空间。数组格式与初始化格式…

主要矛盾和次要矛盾_次要GC,主要GC与完整GC

主要矛盾和次要矛盾在使用Plumbr中的GC暂停检测功能时&#xff0c;我被迫通过大量有关该主题的文章&#xff0c;书籍和演示工作。 在整个旅程中&#xff0c;我多次对次要&#xff0c;主要和完全GC事件的使用&#xff08;误用&#xff09;感到困惑。 这导致了这篇博客文章&#…

action mutation 调用_Vuex源码学习(六)action和mutation如何被调用的(前置准备篇)...

module与moduleCollection你一定要会啊&#xff01;Vuex源码学习(五)加工后的module在组件中使用vuex的dispatch和commit的时候&#xff0c;我们只要把action、mutation注册好&#xff0c;通过dispatch、commit调用一下方法名就可以做到。使用方式vue组件内//in vue componentt…

​嵌入式开发为什么选择C语言?

从语言特点来说C语言有出色的可移植性&#xff0c;能在多种不同体系结构的软/硬平台上运行。简洁紧凑&#xff0c;使用灵活的语法机制&#xff0c;并能直接访问硬件能够直接访问硬件的语言有&#xff1a;汇编和C语言汇编属于低级语言&#xff0c;难以完成一些复杂的功能&#x…

序列化与反序列化的单例模式_序列化代理模式

序列化与反序列化的单例模式在上一篇文章中 &#xff0c;我谈到了一般的序列化。 这是更加集中的内容&#xff0c;并提供了一个细节&#xff1a; 序列化代理模式 。 这是处理序列化中许多问题的一种好方法&#xff0c;通常是最好的方法。 如果开发人员只想了解这一主题&#xf…

图解C语言的希尔排序

希尔排序是插入排序的一种&#xff0c;又称“缩小增量排序”&#xff0c;希尔排序是直接插入排序算法的一种更高效的改进版本。希尔排序的基本思想设等待排序等元素序列有n个元素&#xff0c;首先取一个整数increment&#xff08;小于n&#xff09;作为间隔将全部元素分为n/inc…

给oim_对OIM Web(UI)层进行压力测试

给oimOracle IDM中的默认配置保留20个专用于服务前端&#xff08;UI&#xff09;请求的线程 。 这基本上意味着应用程序服务器具有20个线程池&#xff0c;可用于为通过Web控制台&#xff08;/ identity或/ sysadmin&#xff09;访问OIM的用户提供服务。 对于Weblogic &#xf…

C语言打印输出红色字体

除了Linux&#xff0c;在VS下也可以实现变色这一效果&#xff0c;先看下面的一段代码&#xff1a;#include int main(int argc,char **argv){ printf("\033[44;37;5m hello world\033[0m\n");return 0;}编译后运行上述代码&#xff0c;结果如下&#xff1a;可见&…

mysql g月份分组_PowerBI快捷键——视觉对象分组功能

PowerBI的2020年4月份更新虽然发布在5月份&#xff0c;但的确是提供了很多强大的功能。在以往&#xff0c;要选中多个视觉对象&#xff0c;往往需要按住CTRL键挨个单击选中&#xff0c;然后在进行下一步的分组或其他操作。但是在4月份更新中&#xff0c;PowerBI允许我们通过在画…

编译原理抽象语法树_平衡抽象原理

编译原理抽象语法树使代码复杂易读和理解的一件事是&#xff0c;方法内部的指令处于不同的抽象级别。 假设我们的应用程序仅允许登录用户查看其朋友的旅行。 如果用户不是朋友&#xff0c;则不会显示任何行程。 一个例子&#xff1a; public List<Trip> tripsByFriend…

谈谈单片机编程思想——状态机

玩单片机还可以&#xff0c;各个外设也都会驱动&#xff0c;但是如果让你完整的写一套代码时&#xff0c;却无逻辑与框架可言。这说明编程还处于比较低的水平&#xff0c;你需要学会一种好的编程框架或者一种编程思想&#xff01;比如模块化编程、状态机编程、分层思想等。本文…

C语言结构体使用与指针的理解

以前总有一种疑惑。为什么结构体的指针有的需要用分配空间&#xff1f;有的不需要分配空间呢&#xff1f;现在总结一下思路&#xff1a;一&#xff1a;关于结构体的定义问题&#xff1a;使用结构体一般会使用变量或者定义指针typedef struct{ int a; int b; }data;使用这个结构…

elementui 进度条怎么做_小E,Excel中这样的进度条是怎么做出来的?

我的目标&#xff1a;让中国的大学生走出校门的那一刻就已经具备这些office技能&#xff0c;让职场人士能高效使用office为其服务。支持我&#xff0c;也为自己加油&#xff01;前面我们分享过如何做进度条&#xff1a;《Excel进度条启示&#xff1a;专注与持续积累定会让人生出…