C语言之运算符进阶

C 语言运算符全景:从入门到进阶 C 语言给了程序员“距离硬件仅隔一层汇编”的特权,而运算符正是这层接口的核心。理解优先级、结合性与序列点,不是为了炫技,而是为了把可能的未定义行为关进笼子里。当你能把一行复杂表达式拆成“一眼看懂、静态分析工具零告警”的三行代码时,才算真正驯服了 C 的运算符这只猛兽。“括号是第一生产力,拆分是最佳设计模式。 阅读详情

C语言运算符

一、算术运算

C语言一共有34种运算符,包括常见的加减乘除运算。

①. 加法:+ 还可以表示正号

②. 减法:- 还可以表示负号

③. 乘法:* 非数学意义上的X

④. 除法:/  注意1/2的值为0而非0.5

⑤. 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)

  注意点:

①. Int a=10.8;//数据精度丢失警告。结果为10——自动类型转换

②. Int a=(int)10.8;//无警告。把10.8强制转换为整型——强制类型转换

③. Double c=10.6+6//结果为16.600000。在计算机中,拿两个数值进行运算,则运算符两边的数值需要类型相同,如果不同则进行自动类型提升。即把6转为6.000000后再参与运算。

④. 参与运算的两个数是什么类型,那么其结果就是什么类型。int a=10/3结果为3,double b=10/3结果为3.000000;double c=10.0/3结果为3.333333。要求精确值可以进行强制类型转换。double d=(double)3/2把3转换为double类型变为3.000000,之后2进行自动类型提升转变为2.000000参与运算,结果为1.500000。也可以写成3/(double)2。这种情况需要注意与对整体进行强制转换的区别 double e=(double)(3/2)是先计算3/2的值为1再对1进行强制类型转换,结果为1.000000。

 

二、赋值运算

(一)简单赋值

Int a=10+5;a=b=10;//从右向左,左边不能为常量

(二)复合赋值

a=a+5;=>a+=5;

a=a*5;=>a*=5;

a+=5*6+4;=>a=a+(5*6+4)

提示:预算顺序取决于两点:一是运算符的优先级,二是结合的顺序。

 

三、自增自减运算

Int a=10;

把a的值加1有四种方法:

①. a=a+1;

②. a+=1;

③. a++;

④. ++a;

简单区分a++和++a。

Int b;

Int a=10;

b=++a; //a==11,b==11;a先把值加1为11,再赋值给b

b=a++; //a==11,b==10;a先把值10复制给b,a自己再加1为11

b=(a++)+(++a);  //a1==10,a2==12,b==22

b=(++a)+(a++);  //a1==11,a2==11,b==22

注意:int d=10++;//这种写法是错误的,因为对常量进行自加和自减没有任何意义。

 

四、Sizeof

作用:用来计算变量,常量或者是一种数据类型所占的内存字节数。

基本形式:sizeof(变量名|常量|数据类型),完成之后返回一个值。

①. Sizeof 变量|常量

②. Sizeof (变量|常量)

③. Sizeof (数据类型)

注意:数据类型一定要用括号括起来,不能写成sizeof 数据类型这样的形式。

 

五、关系运算符

 (一)条件判断

默认情况下。在程序中写出的每一句正确的代码都会被执行,但很多时候我们需要在某个条件成立的情形下才执行某一段代码,如登录操作,这种情况可以使用条件语句来完成。

 (二)真假

在C语言中,条件成立称为“真”,条件不成立称为“假”。

C语言规定,任何数值都有真假性,任何非零值都为真,只有0才为假,无布尔类型。

 (三)关系比较

关系运算的结果只有两种情况,如果条件成立就为真,值为1,如果条件不成立就为假,值为0。有6种运算符,分别是:(1)<  (2)<=  (3) >  (4) >=  (5)==  (6)!=

 (四)使用注意

①. ==和!=优先级相等,其他四个关系运算符的优先级相等,且前者的优先级低于后者。如2==3>1 应该先计算3>1

②. 关系运算符中,若优先级相同,则“从左往右”结合。如4>3<2,先计算4>3

③. 关系运算符中的优先级小于算术运算符。如3+4>8-2 相当于(3+4)> (8-2)

④. 练习5!=4+2*7>3==10 先计算5!=18>3==10,5!=1==10,1==10,假

 

六、逻辑运算符

逻辑运算的结果只有两个:真(0)和假(1)

①. 与   &&   条件1&&条件2 只有的那个条件1和条件2都成立时,才为真否则为假。

②. 或   ||    条件1 ||条件2  当条件1或条件2中有一个成立时就为真,都不成立时为假。

③. 非   !  !条件   取反

注意:逻辑运算符在进行运算时,只要能够确定整体的真假性,后面的条件就不再进行而是直接忽略。

Int a=b=10;

Int c=(a>5)&&(++b>=11);//此时a==10,b==11,c==1

Int c=(a<5)&&(++b>=11);//此时a==10,b==10,c==0

提示:在进行逻辑运算时,如果搞不清楚各个符号的优先级,可以使用()。

 

七、三目运算符

双目:需要两个值参与运算

单目:1个数值参与运算  如!5

三目:需要3个数值参与

格式:条件?数值1:数值2 

先判断?前的条件,若条件成立则返回数值1,若条件不成立则返回条件2。

要求比较a和b的值,把数值大的存入到c中  c=a>b?a:b

比较a,b,c三个数的值,把最大的值存入到d中

Int  abmax=(a>b)?a:b;

d=abmax>c:abmax:c;

C语言问答进阶--4、基本运算符 赋值运算符 A:下面将介绍赋值操作符。它的符号就是=. A:赋值操作符,就是把一个值赋值给左边的变量。正如以前说的形如a=1之类的表达就是赋值运算符的具体应用。 也许有的人在编写代码的时候写过这种代码: #include"iostream.h" intmain() { intx; 1=x; cout return 阅读详情

相关推荐

进阶C语言第五章、运算符、表达式和语句

基本运算符 运算符表四算术运算。 pow()用于指数运算。 1)赋值预算符= 目的:把值存储到内存位置上, 数据对象:用于存储值 的数据存储区域。 左值:用于标识 特定的数据对象 的名称或表达式(标签) 可修改的左值。用于标识可修改的对象。 右值:能赋给可修改左值的量。可以是常量、变量、可求值的表达式。 表达式的值 可修改的左值 = 表达式的值 2)+ - * / (二元运算)需两个运算对象才能完成操作。遵循数学优先级 3)符号运算 (一元运算) 其它运算符 1)sizeo.

Asa的博客 211

C语言中的运算符(超全超详细)

目录 一、算数运算符 二、关系运算符 三、逻辑运算符 四、位运算符 五、赋值运算符 六、三目运算符(特殊运算符) 七、逗号运算符 八、sizeof运算符 九、运算符优先级 一、算数运算符 基本的五种 1. + 可以是: 常量+常量 , 变量+常量 2. - 3. * 4. / 5 / 2 = 2 5. % 取余 5 % 2 = 1 其中 : 自增运算符(++) 自减...

weixin_59215611的博客 6万+

掌握C语言运算符:从基础到进阶

本章节深入探讨了C语言中的运算符及其表达式的使用和规则。包括了增量运算符、减量运算符、除法和模运算符、关系运算符、逻辑运算符、位运算符以及赋值运算符等核心概念。通过示例代码和程序输出,详细解释了每个运算符的用法和在编写程序时需要注意的细节。

weixin_42465332的博客 437

C语言运算符详解

本篇文章介绍了C语言中的各种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和条件运算符。C语言中的运算符主要有算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。条件运算符也称为三元运算符,是一种特殊的运算符,通常用于生成基于某个条件的结果。需要注意的是,在C语言中,整数相除的结果也是整数,如果除不尽,那么结果会截断。在上面的示例中,我们使用了条件运算符来比较a和b,选取较大的一个作为max的值。在上面的示例中,我们定义了一些变量,并使用了各种逻辑运算符。

晓林爱学习的博客 4495

基于STM32的宠物智能照护嵌入式系统设计

嵌入式系统是实现物联网终端设备本地化感知、决策与执行的核心技术载体,其关键在于多传感器融合、低功耗执行控制与轻量级云边协同。本文围绕环境监测(温湿度、烟雾、余粮)、机电执行(步进电机食盘、继电器风扇)和可靠通信(MQTT+ESP8266)三大技术主线,深入解析STM32F103在资源约束下的外设调度策略、ADC采样抗干扰设计、DHT11时序精准控制及HX711称重滤波算法等工程实践要点。系统强调本地闭环优先原则,确保离线基础功能可用,同时通过阿里云IoT平台实现远程监控与告警联动,为中小型智能硬件项目提供可

weixin_29155599的博客 292

lammps建模(电解液)opls-aa力场的基本流程

lammps建模(电解液)opls-aa力场的基本流程

syj0922的博客 2133

“|=“运算符用法示例讲解

运算符是 C/C++ 语言中的一个复合赋值运算符,它将位或运算和赋值操作合并在一起,用于对一个整型变量的值进行按位或运算后再将结果赋值回这个变量。提高效率:使用复合赋值运算符可以避免多次对同一变量进行赋值操作,减少中间变量的使用,从而提高代码的执行效率。简化代码:使用复合赋值运算符可以将多个语句合并成一条语句,简化代码结构,提高代码的可读性和可维护性。的二进制表示中的每一位进行逻辑或运算,将结果存储到新的整数中。,即对应二进制位上的值进行按位或运算后的结果。需要注意的是,位或运算符。

qq_50635297的博客 2万+

【3D Slicer】阈值法测量肺部病灶体积

利用3D Slicer测量肺容积

SQ的博客 4857

C语言中 * 的三种含义

3.解引用操作(间接访问操作):左边没啥,右边是一个指针类型变量。如果x是一个已经定义好的指针变量,则(*x)表示以y的内容为地址的变量。2.指针类型:左边是类型。(定义了一个名字叫x的变量,能够存放int数据类型的地址)1.相乘:符号两边都是两个变量。

Cerulea_n的博客 1万+

基于MicroBlaze与LWIP的FPGA以太网通信实战指南

本文详细介绍了基于MicroBlaze软核处理器与LWIP协议栈的FPGA以太网通信实现方案。通过Vivado工具链配置硬件设计,结合LWIP轻量级TCP/IP协议栈优化,提供高效、低成本的嵌入式网络解决方案,适用于工业控制等场景。文章包含硬件设计、软件配置及常见问题排查等实战指南。

weixin_29290863的博客 532

字节跳动高频111道核心前端面试题解析,web开发增强

但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。自定义指令(v-check、v-focus)的方法有哪些?v-model是什么?

2401_84094620的博客 1199

C语言中的算术运算符和算术表达式

C语言中的算术运算符和算术表达式 C语言中运算和表达式的数量很多,C语言正是因为丰富的运算符和表达式使其语言功能十分完善。C语言的运算符不仅具有不同的优先级,还有结核性。在表达式中,各运算表达量参与运算的先后要遵守运算符优先级别的规定,也要受运算符结合姓的制约,以便确定是自左向右还是自右向左进行运算。这种结合性,增加了C语言的复杂性。 一、C语言运算符简介 C语言的运算符可以分为以下几类:

sardine_c的博客 1万+

74LS161/48 交通灯控制系统:30-5-20-5 时序逻辑电路 Multisim 仿真验证

本文详细解析了基于74LS161/48芯片的交通灯控制系统设计,通过Multisim仿真验证30-5-20-5时序逻辑电路。从系统架构搭建、状态机实现到波形分析,提供全流程操作指南与典型问题排查方法,助力数字电路课程设计高效完成。

weixin_26742753的博客 377

C语言进阶与运算符

在C语言中,我们会使用scanf函数来获取用户的输入,因为我们需要将用户输入的数据存放到指定的变量中,所以我们首先要在输入之前定义好指定的变量,并且我们需要用取地址符(&)来获取变量的地址,便于把数据根据对应的地址进行存放。我们发现,在a/b处,我们已经细心的把输出格式%f,但是,输出是0,这是因为当进行运算的两个数字都是整型时,输出的数字也会默认是整型,这时候如果结果是小数,就会舍去小数部分(他只有自增的操作,并没有使用的操作(比如赋值),此时上面两行代码的含义是一样的。

2401_84944910的博客 866

YOLO系列算法改进 | C3k2改进篇 | 融合MambaOut轻量化门控架构 | 纯卷积实现超越Mamba性能的同时兼顾极致轻量化与边缘部署效率 | CVPR 2025

YOLO系列算法改进 | C3k2改进篇 | 融合MambaOut轻量化门控架构 | 纯卷积实现超越Mamba性能的同时兼顾极致轻量化与边缘部署效率 | CVPR 2025 (以YOLOv26最新目标检测模型为基础,利用C3k2_MambaOut创新模块进行改进)

2502_91881744的博客 224

张力控制速度闭环控制算法

这个算法的核心思想是通过比较实际速度和期望速度的差异来调整控制信号,以达到稳定的速度控制。比例项用于直接根据误差调整输出,积分项用于积累误差并进行补偿,微分项用于预测误差的变化趋势并进行调整。张力控制是在许多工程和工业应用中非常重要的一个过程,它涉及到通过调节力的大小来实现稳定的工作状态。通过合理设置比例、积分和微分系数,并结合实际系统的特性进行调试和优化,可以实现准确稳定的张力控制。速度闭环控制算法通过比较实际速度和期望速度之间的差异,并根据差异调整系统的输出,以保持速度稳定。

LiJavascript的博客 1301

《小菜狗 C 语言入门 + 进阶笔记》(17)复杂判断语句和 运算符【判断语句运算符的最全讲解】

用于比较的表达式,称为关系表达式。运算符描述实例==检查两个操作数的值是否相等,如果相等则条件为真。(A == B) 为假。!检查两个操作数的值是否相等,如果不相等则条件为真。(A!= B) 为真。检查左操作数的值是否大于右操作数的值,如果是则条件为真。(A > B) 为假。检查左操作数的值是否小于右操作数的值,如果是则条件为真。(A < B) 为真。>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。(A >= B) 为假。<=

小鹅系列笔记 2130

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C语言进阶课程学习记录-第15课 - 逻辑运算符分析

本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录。只有0才代表假,其余的所有值均代表真。程序中的逻辑表达式遵从短路规则。-碰见0返回1,否则统统返回0。-整个表达式被看作‖表达式。-从左向右先计算&&表达式。

qq_35429166的博客 365

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C语言进阶课程学习记录-第18课 - 三目运算符和逗号表达式

本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录。逗号表达式按照从左向右的顺序计算每个子表达式的值。三目运算符通过隐式类型转换规则确认返回值类型。三目运算符返回变量的值,而不是变量本身。逗号表达式的值为最后一一个子表达式的值。

qq_35429166的博客 395

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C语言超详细讲解——运算符进阶

基于上一篇文章的简单讲解后,本文将进一步详细介绍运算符或操作符的相关内容,可以根据自己的需要寻找相关内容哦!

2401_86940607的博客 1363

C语言进阶之路-运算符小怪篇

本文细讲了打怪路上的运算符怪和控制流怪的特点和消灭方法,各位只需认真学习,即可消灭它们。祝各位都可爬上C语巅峰,斩尽拦路小妖。本文参考 粤嵌文哥 的部分课件,经过整理和修改后发布在C站。如有转载,请联系本人。

志不在此,打卡留念 1370

《C语言进阶剖析》 3.运算符

不同的编译器处理方式不同。(3)左移运算符。

卓学课堂 325

C语言进阶剖析 15 逻辑运算符分析

++i || ++j &amp;&amp; ++k;会输出什么呢? 实例分析: 初探逻辑运算符 #include &lt;stdio.h&gt; int main() { int i = 0; int j = 0; int k = 0; ++i || ++j &amp;&amp; ++k; printf("i = %d\n", i)...

Linux Openharmony Android Graphics Stack! 792

【C语言进阶剖析】15、逻辑运算符分析

一提到逻辑运算符,第一印象就是经常用在条件判断中,挺简单的。其实逻辑运算符确实在条件判断中用的比较多,但是真的很简单吗?下面来看一个例子 1 初探逻辑运算符 逻辑运算符有 &&,|| 和 !,他们真的很简单吗,下面看一个例子? // 15-1.c #include<stdio.h> int main(){ int i = 0; int j = 0; ...

桑凯旋的博客 493

C语言进阶教程(#运算符和##运算符)

本篇文章来介绍#运算符和##运算符的使用,这两个运算符大家应该是比较少见到,那么这篇文章将带大家来使用一下#运算符和##运算符。在C语言中,# 运算符和 ## 运算符是用于宏定义和宏展开的特殊运算符。在宏定义中,# 运算符用于将宏参数转换为字符串字面量。它可以将宏参数替换为字符串,并在编译时进行字符串拼接操作。// 输出 "Hello"// 输出 "Hello"// 输出 "Hello"在上述示例中,#x 将宏参数 x 转换为字符串。

m0_49476241的博客 2821

C语言进阶剖析 16 位运算符分析

位运算符分析 C 语言中的位运算符 &nbsp;&nbsp;&nbsp;&nbsp;○ 位运算符直接对 bit 位进行操作,其效率最高! 左移和右移注意点 &nbsp;&nbsp;&nbsp;&nbsp;○ 左操作数必须为整数类型 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;■ char 和 short 被隐式转

Linux Openharmony Android Graphics Stack! 1811
上一篇: C语言之scanf
下一篇: C语言之控制流程
Shicuf
博客等级 码龄16年 11粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值