C语言运算符与表达式

目录
  • 表达式
    • 函 数 概 述
  • 赋值运算符与赋值表达式
    • 变量赋初值
    • 自动类型转换
    • 强制类型转换
  • 算数运算符与表达式
    • 算术运算符
    • 算术表达式
    • 优先级与结合性
    • 自增自减运算符
    • 关系运算符与表达式
    • 优先级与结合性
  • 逻辑运算符与表达式
  • 位逻辑运算符与表达式
    • 位逻辑运算符
    • 位逻辑表达式
  • 逗号运算符与表达式
  • 复合赋值运算符

表达式

函 数 概 述

表达式是C语言的主体。在C语言中,表达式由操作符和操作数组成。最简单的表达式可以只含有一个操作数。根据表达式含有的操作符的个数,可以把表达式分为简单表达式和复杂表达式两种:简单表达式是只含有一个操作符的表达式,而复杂表达式是包含两个或两个以上操作符的表达式。

5+5
iNumber+9
iBase+(iPay*iDay)

表达式本身什么事情也不做,只是返回结果值。在程序不对返回的结果值进行任何操作的情况下,返回的结果值不起任何作用,也就是忽略返回的值。

表达式返回的结果值是有类型的。表达式隐含的数据类型取决于组成表达式的变量和常量的类型。

赋值运算符与赋值表达式

变量赋初值

在声明变量时,可以为其赋一个初值,就是将一个常数或者一个表达式的结果赋值给一个变量,变量中保存的内容就是这个常量或者赋值语句中表达式的值。这就是为变量赋初值。

先来看一下为变量赋值为常数的情况。一般的形式是:

类型 变量名 = 常数;

其中的变量名也称为变量的标识符。

通过变量赋初值的一般形式,以下是相关的代码实例:

char cChar ='A';
int iFirst=100;
float fPlace=1450.78f;

赋值表达式为变量赋初值。

赋值语句把一个表达式的结果值赋给一个变量。一般的形式是:

类型 变量名 = 表达式;

可以看到,其一般形式与常数赋值的一般形式是相似的,例如:

int iAmount= 1+2;
float fPrice= fBase+Day*3;

在上面的举例中,得到赋值的变量iAmount和fPrice称为左值,因为它出现的位置在赋值语句的左侧。产生值的表达式称为右值,因为它出现的位置在表达式的右侧。

【实例】 为变量赋初值。为变量赋初值的操作是编程时常见的操作。在本实例中,模拟钟点工的计费情况,使用赋值语句和表达式得出钟点工工作8个小时后所得的薪水。

#include<stdio.h>
int main()
{
int iHoursWorded=8;/*定义变量,为变量赋初值。表示工作时间*/
int iHourlyRate; /*声明变量,表示一个小时的薪水*/
int iGrossPay; /*声明变量,表示得到的工资*/
iHourlyRate=13; /*为变量赋值*/
iGrossPay=iHoursWorded*iHourlyRate; /*将表达式的结果赋值给变量*/
printf("The HoursWorded is: %d\n",iHoursWorded); /*显示工作时间变量*/
printf("The HourlyRate is: %d\n",iHourlyRate);/*显示一个小时的薪水*/
printf("The GrossPay is: %d\n",iGrossPay);/*显示工作所得的工资*/
return 0; /*程序结束*/
}

自动类型转换

数值类型有很多种,如字符型、整型、长整型和实型等,因为这些类型的变量、长度和符号特性都不同,所以取值范围也不同。混合使用这些类型时会出现什么情况呢?第3章已经对此有所介绍。

C语言中使用一些特定的转化规则。根据这些转化规则,数值类型变量可以混合使用。如果把比较短的数值类型变量的值赋给比较长的数值类型变量,那么比较短的数值类型变量中的值会升级表示为比较长的数值类型,数据信息不会丢失。但是,如果把较长的数值类型变量的值赋给比较短的数值类型变量,那么数据就会降低级别表示,并且当数据大小超过比较短的数值类型的可表示范围时,就会发生数据截断。

有些编译器遇到这种情况时就会发出警告信息,例如:

float i=10.1f;
int j=i;

此时编译器会发出警告,如图所示:

强制类型转换

通过自动类型转化的介绍得知,如果数据类型不同,就可以根据不同情况自动进行类型转化,但此时编译器会提示警告信息。这个时候如果使用强制类型转化告知编译器,就不会出现警告。

强制类型转化的一般形式为:

(类型名) (表达式)

例如在上述不同变量类型转化时使用强制类型转化的方法:

float i=10.1f;
int j= (int)i; /*进行强制类型转化*/

在代码中可以看到在变量前使用包含要转化类型的括号,这样就对变量进行了强制类型转化。

【实例】 显示类型转化的结果。在本实例中,通过不同类型变量之间的赋值,将赋值操作后的结果进行输出,观察类型转化后的结果。

#include<stdio.h>
int main()
{
char cChar; /*字符型变量*/
short int iShort; /*短整型变量*/
int iInt; /*整型变量*/
float fFloat=70000; /*单精度浮点型*/
cChar=(char)fFloat; /*强制转化赋值*/
iShort=(short)fFloat;
iInt=(int)fFloat;
printf("the char is: %c\n",cChar);/*输出字符变量值*/
printf("the long is: %ld\n",iShort);/*输出短整型变量值*/
printf("the int is: %d\n",iInt); /*输出整型变量值*/
printf("the float is: %f\n",fFloat);/*输出单精度浮点型变量值*/
return 0; /*程序结束*/
}

算数运算符与表达式

算术运算符

算术运算符包括:两个单目运算符(正和负),5个双目运算符乘法、除法、取模、加法和减法。具体符号和对应的功能如表所示。

在上述的算术运算符中,取模运算符(%)用于计算两个整数相除得到的余数,并且取模运算符的两侧均为整数,例如7%4的结果是3。

算术表达式

在表达式中使用算术运算符,则将表达式称为算术表达式。下面是一些算术表达式的例子,其中使用的运算符就是表4.1中所列出的算术运算符:

Number=(3+5)/Rate;
Height= Top-Bottom+1;
Area=Height * Width;

需要说明的是,两个整数相除的结果为整数,例如7/4的结果为1,舍去的是小数部分。但是,如果其中的一个数是负数时会出现什么情况呢?此时机器会采取“向零取整”的方法,即为-1,取整后向0靠拢。

优先级与结合性

C语言中规定了各种运算符的优先级和结合性,首先来看一下有关算术运算的优先级:

算术运算符的优先级

在表达式求值时,先按照运算符的优先级别高低次序执行,算术运算符中*、/、%的优先级别高于+、-的级别。例如,如果在表达式中同时出现*和+,那么先运算乘法:

R=x+y*z;

在表达式中,因为*比+的优先级高,所以会先进行y*z的运算,最后加上x。

算术运算符的结合性

当算术运算符的优先级相同时,结合方向为“自左向右”。

例如:

a-b+c

因为减法和加法的优先级是相同的,所以b先与减号相结合,执行a-b的操作,然后执行加c的操作。这样的操作过程就称为“自左向右的结合性”,在后面的介绍中还可以看到“自右向左的结合性”。

自增自减运算符

在C语言中还有两个特殊的运算符:自增运算符“++”和自减运算符“--”。自增运算符和自减运算符对变量的操作分别是增加1和减少1,

如表所示:

自增运算符和自减运算符可以放在变量的前面或者后面,放在变量前面称为前缀,放在后面称为后缀,使用的一般方法如下所示。

--Counter; /*自减前缀符号*/
Grade--; /*自减后缀符号*/
++Age; /*自增前缀符号*/
Height++; /*自增后缀符号*/

在上面这些例子中,运算符的前后位置不重要,因为所得到的结果是一样的,自减就是减1,自增就是加1。

关系运算符与表达式

关系运算符包括大于运算符、大于等于运算符、小于运算符、小于等于运算符、等于运算符、不等于运算符。表中列出了这6种关系运算符所对应的符号。

关系运算符用于对两个表达式的值进行比较,返回一个真值或者假值。返回真值还是假值取决于表达式中的值和所用的运算符。其中真值为1,假值为0,真值表示指定的关系成立,假值则表示指定的关系不正确。

例如:

7>5 /*因为7大于5,所以该关系成立,表达式的结果为真值*/
7>=5 /*因为7大于5,所以该关系成立,表达式的结果为真值*/
7<5 /*因为7大于5,所以该关系不成立,表达式的结果为假值*/
7<=5 /*因为7大于5,所以该关系不成立,表达式的结果为假值*/
7==5 /*因为7不等于5,所以该关系不成立,表达式的结果为假值*/
7!=5 /*因为7不等于5,所以该关系成立,表达式的结果为真值*/

关系运算符通常用来构造条件表达式,用在程序流程控制语句中,例如if语句是用于判断条件而执行语句块,在其中使用关系表达式作为判断条件,如果关系表达式返回的是真值则执行下面的语句块,如果为假值就不去执行。

代码如下:

if(Count<10)
{
… /*判断条件为真值,执行代码*/
}

其中,if(iCount<10)就是判断iCount小于10这个关系是否成立,如果成立则为真,如果不成立则为假。

优先级与结合性

关系运算符的结合性都是自左向右的。使用关系运算符的时候常常会判断两个表达式的关系,但是由于运算符存在着优先级的问题,因此如果不小心处理则会出现错误。例如要进行这样的判断操作:先对一个变量进行赋值,然后判断这个赋值的变量是否不等于一个常数,

代码如下:

if(Number=NewNum!=10)
{
…
}

因为“!=”运算符比“=”的优先级要高,所以NewNum!=0的判断操作会在赋值之前实现,变量Number得到的就是关系表达式的真值或者假值,这样并不会按照之前的意愿执行。

前文曾经介绍过括号运算符,括号运算符的优先级具有最高性,因此使用括号来表示要优先计算的表达式,例如:

if((Number=NewNum)!=10)
{
…
}

这种写法比较清楚,不会产生混淆,没有人会对代码的含义产生误解。由于这种写法格式比较精确简洁,因此被多数的程序员所接受。

逻辑运算符与表达式

使用逻辑运算符可以将多个关系表达式的结果合并在一起进行判断。

其一般形式为:

表达式  逻辑运算符  表达式

例如使用逻辑运算符:

Result= Func1&&Func2; /*Func1和Func2都为真时,结果为真*/
Result= Func1||Func2; /*Func1、Func2其中一个为真时,结果为真*/
Result= !Func2; /*如果Func2为真,则Result为假*/

前面已经介绍过,但这里还要做重点强调,不要把逻辑与运算符“&&”和逻辑或运算符“||”与下面要讲的位与运算符“&”和位或运算符“|”混淆。

逻辑与运算符和逻辑或运算符可以用于相当复杂的表达式中。一般来说,这些运算符用来构造条件表达式,用在控制程序的流程语句中,例如在后面章节中要介绍的if、for、while语句等。

在程序中,通常使用单目逻辑非运算符“!”把一个变量的数值转化为相应的逻辑真值或者假值,也就是1或0。

例如:

Result= !!Value;  /*转化成逻辑值*/

&&||是双目运算符,它们要求有两个操作数,结合方向自左至右;!是单目运算符,要求有一个操作数,结合方向自左向右。

逻辑运算符的优先级从高到低依次为:单目逻辑非运算符!,逻辑与运算符&&,逻辑或运算符||

【实例4.8】 逻辑运算符的应用。在本实例中,使用逻辑运算符构造表达式,通过输出显示表达式的结果,根据结果分析表达式中逻辑运算符的计算过程。

#include<stdio.h>
int main()
{
int iNumber1,iNumber2; /*声明变量*/
iNumber1=10; /*为变量赋值*/
iNumber2=0;
printf("the 1 is Ture , 0 is False\n"); /*显示提示信息*/

printf("5< iNumber1&&iNumber2 is %d\n",5<iNumber1&&iNumber2); /*显示逻辑与表达式的结果*/

printf("5< iNumber1||iNumber2 is %d\n",5<iNumber1||iNumber2); /*显示逻辑或表达式的结果*/

iNumber2=!!iNumber1;/*得到iNumber1的逻辑值*/
printf("iNumber2 is %d\n",iNumber2);/*输出逻辑值*/
return 0;
}

位逻辑运算符与表达式

位逻辑运算符

位逻辑运算符包括:位逻辑与、位逻辑或、位逻辑非、取补。表列出了所有位逻辑运算符。

位逻辑表达式

在程序中,位逻辑运算符一般被程序员用作开关标志。较低层次的硬件设备驱动程序,经常需要对输入输出设备进行位操作。

如下位逻辑与运算符的典型应用,对某个语句的位设置进行检查:

if(Field & BITMASK)

语句的含义是if语句对后面括号中的表达式进行检测。如果表达式返回的是真值,则执行下面的语句块,否则跳过该语句块不执行。其中运算符用来对BITMASK变量的位进行检测,判断其是否与Field变量的位有相吻合之处。

逗号运算符与表达式

在C语言中,可以用逗号将多个表达式分隔开来。其中,用逗号分隔的表达式被分别计算,并且整个表达式的值是最后一个表达式的值。

逗号表达式称为顺序求值运算符。逗号表达式的一般形式为:

表达式1,表达式2 ,…,表达式n

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,一直求解到表达式n。整个逗号表达式的值是表达式n的值。

观察下面使用逗号运算符的代码:

Value=2+5,1+2,5+7;

上面语句中Value所得到的值为7,而非12。整个逗号表达式的值不应该是最后一个表达式的值吗?为什么不等于12呢?答案在于优先级的问题,由于赋值运算符的优先级比逗号运算符的优先级高,因此先执行的赋值运算。如果要先执行逗号运算,则可以使用括号运算符,代码如下所示:

Value=(2+5,1+2,5+7);

使用括号之后,Value的值为12。

【实例4】 用逗号分隔的表达式。本实例中,通过逗号运算符将其他的运算符结合在一起形成表达式,再将表达式的最终结果赋值给变量。由显示变量的值,分析逗号运算符的计算过程。

#include<stdio.h>
int main()
{
int iValue1,iValue2,iValue3,iResult; /*声明变量,使用逗号运算符*/
/*为变量赋值*/
iValue1=10;
iValue2=43;
iValue3=26;
iResult=0;
iResult=iValue1++,--iValue2,iValue3+4;/*计算逗号表达式*/
printf("the result is :%d\n",iResult); /*将结果输出显示*/
iResult=(iValue1++,--iValue2,iValue3+4);/*计算逗号表达式*/
printf("the result is :%d\n",iResult); /*将结果输出显示*/
return 0; /*程序结束*/
}

复合赋值运算符

复合赋值运算符是C语言中独有的,实际这种操作是一种缩写形式,可使得变量操作的描述方式更为简洁。例如在程序中为一个变量赋值:

Value=Value+3;

这个语句是对一个变量进行赋值操作,值为这个变量本身与一个整数常量3相加的结果值。使用复合赋值运算符可以实现同样的操作。例如上面的语句可以改写成:

Value+=3;

这种描述更为简洁。关于上面两种实现相同操作的语句,赋值运算符和复合赋值运算符的区别在于:

为了简化程序,使程序精炼。 为了提高编译效率。

对于简单赋值运算符,如Func=Func+1中,表达式Func计算两次;对于复合赋值运算符,如Func+=1中,表达式Func仅计算一次。一般来说,这种区别对于程序的运行没有太大的影响。但是,如果表达式中存在某个函数的返回值,那么函数被调用两次。

【实例】 使用复合赋值运算符简化赋值运算。

#include<stdio.h>
int main()
{
int iTotal,iValue,iDetail; /*声明变量*/
iTotal=100; /*为变量赋值*/
iValue=50;
iDetail=5;
iValue*=iDetail; /*计算得到iValue变量值*/
iTotal+=iValue; /*计算得到iTotal变量值*/
printf("Value is: %d\n",iValue); /*显示计算结果*/
printf("Total is: %d\n",iTotal);
return 0;
}

到此这篇关于C语言运算符与表达式的文章就介绍到这了,更多相关C运算符与表达式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言位运算符的具体使用

    目录 布尔位运算符 移位运算符 对于更多紧凑的数据,C 程序可以用独立的位或多个组合在一起的位来存储信息.文件访问许可就是一个常见的应用案例.位运算符允许对一个字节或更大的数据单位中独立的位做处理:可以清除.设定,或者倒置任何位或多个位.也可以将一个整数的位模式(bit pattern)向右或向左移动. 整数类型的位模式由一队按位置从右到左编号的位组成,位置编号从 0 开始,这是最低有效位(least significant bit).例如,考虑字符值'*',它的 ASCII 编码为 42,相当

  • C语言实现中缀表达式转换为后缀表达式

    本文实例为大家分享了C语言实现中缀表达式转后缀表达式的具体代码,供大家参考,具体内容如下 中缀表达式转换为后缀表达式(思路) 1.创建栈 2.从左向右顺序获取中缀表达式 a.数字直接输出 b.运算符 情况一:遇到左括号直接入栈,遇到右括号将栈中左括号之后入栈的运算符全部弹栈输出,同时左括号出栈但是不输出. 情况二:遇到乘号和除号直接入栈,直到遇到优先级比它更低的运算符,依次弹栈. 情况三:遇到加号和减号,如果此时栈空,则直接入栈,否则,将栈中优先级高的运算符依次弹栈(注意:加号和减号属于同一个优

  • C语言利用栈实现对后缀表达式的求解

    本文实例为大家分享了C语言实现对后缀表达式(逆波兰表达式)的求解代码,供大家参考,具体内容如下 逆波兰表达式: 逆波兰表达式又叫后缀表达式.它是由相应的语法树的后序遍历的结果得到的. 例:5 - 8*(6 + 7) + 9 / 4: 其中缀表达式为:5 - 8 * 6 + 7 + 9 / 4 其语法树如下: 因此根据语法树可以得出他后序遍历(后缀表达式)为: 5 8 6 7 + * - 9 4 / + 这样就实现了中缀表达式到后缀表达式的转换. 同样的也可以得出他的前序遍历(前缀表达式也称波兰表

  • C语言运算符的重载详解

    目录 写一个Add函数 为什么不用加号作为函数名 运算符的重载 上面问题解决 总结 写一个Add函数 我们先讨论下面代码,并复习前面的内容 class Complex { private: double Real, Image; public: Complex() :Real(0), Image(0) {} Complex(double r, double i) :Real(r), Image(i) {} ~Complex() {} //Complex Add(const Complex* co

  • 关于c语言逗号表达式的运算规则知识点

    c语言逗号表达式的运算规则 c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8. 逗号表达式用法: 当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值. 示例: #include <stdio.h> int main() { int a, s, d; s = 2; d = 3; a = (s + 2, d + 4); printf("%d\n", a); return 0; } 结果 7 注意事项 (1) 逗号表

  • C语言 详细讲解逻辑运算符的使用

    目录 一.&& 与 II 分析 二.!分析 三.小结 一.&& 与 II 分析 下面的程序运行结束后,i, j,k 的值分别为多少? #include <stdio.h> int main() { int i = 0; int j = 0; int k = 0; ++i || ++j && ++k; printf("i = %d\n", i); printf("j = %d\n", j); printf(&

  • C语言简明讲解三目运算符和逗号表达式的使用

    目录 一.三目运算符 二.逗号表达式 三.小结 一.三目运算符 三目运算符( a ? b : c)可以作为逻辑运算的载体 规则:当 a 的值为真时,返回 b 的值:否则返回 c 的值 下面看一段代码: #include <stdio.h> int main() { int a = 1; int b = 2; int c = 0; c = a < b ? a : b; (a < b ? a : b) = 3; printf("%d\n", a); printf(&

  • C语言实现数学表达式运算

    本文实例为大家分享了C语言实现数学表达式运算的具体代码,供大家参考,具体内容如下 1.开发思路: (假设有表达式 2 * 3 * ( 1 + 2) ) 数字要一个一个取出放在内存中,根据相邻前后2个计算符号,判断是否要取出数字进行计算,2个数字的计算值重新放在内存中且顺序放置.考虑使用栈这种数据结构去保存数字和符号,用2个栈,1个栈保存数字,一个栈保存运算符号. 2.因要使用栈这种数据结构,本代码使用纯C语言开发,故先编写栈的代码,参考: c语言实现通用数据结构(三):通用椎栈 3.重要处理逻辑

  • C语言运算符与表达式

    目录 表达式 函 数 概 述 赋值运算符与赋值表达式 变量赋初值 自动类型转换 强制类型转换 算数运算符与表达式 算术运算符 算术表达式 优先级与结合性 自增自减运算符 关系运算符与表达式 优先级与结合性 逻辑运算符与表达式 位逻辑运算符与表达式 位逻辑运算符 位逻辑表达式 逗号运算符与表达式 复合赋值运算符 表达式 函 数 概 述 表达式是C语言的主体.在C语言中,表达式由操作符和操作数组成.最简单的表达式可以只含有一个操作数.根据表达式含有的操作符的个数,可以把表达式分为简单表达式和复杂表达

  • 详解易语言的运算符及表达式

    以下内容给大家分享了关于易语言运算符和易语言表达式相关的知识点内容,一起来学习下. 1.易语言运算符 易语言程序进行算术运算或关系比较操作时,需要使用运算符.易语言运算符如下: 程序中的运算符有其优先级别,在程序运行时按照符号的优先级别从高到低依次运算.易语言运算符优先级别如下: 易语言运算符优先级  2.易语言表达式 用运算符和括号将作为对象的各类数据连接起来,符合易语言语法规则的式子,称易语言表达式. 下面是一个表达式:变量1=((3×9-15÷3)-2)\8. 表达式中运算先后,是按照运算

  • C语言运算符优先级列表(超详细)

    每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 +

  • C语言 运算符详细介绍及示例代码

    C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和其他运算符. 算术运算符 下表显示了 C 语言支持的所有算术运算符.假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符 描述 实例 + 把两个操作数相加 A + B 将得到 30 - 从第一个操作数中减去第二个操作数 A

  • C语言运算符的优先级和结合性实例详解

    运算符是告诉编译程序执行特定算术或逻辑操作的符号.C语言的运算范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理.主要分为三大类:算术运算符. 关系运算符与逻辑运算符.除此之外,还有一些用于完成特殊任务的运算符. 先来看一个例子: #include <stdio.h> int main(){ int a=10,b=1,c=2; a=b=c; printf( "12+3*5=%d\n", 12+3*5); printf( "a=%d, c=%

  • 浅谈C/C++ 语言中的表达式求值

    经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5: a = 4; cout << a++ << a; C++ 不是规定 << 操作左结合吗?是C++ 书上写错了,还是这个系统的实现有问题? 注:运行a = 4; cout << a++ << a; 如在Visua

  • C语言运算符及其优先级汇总表口诀

    C语言运算符及其优先级汇总表口诀 圆下箭头一顿号非凡增减富强针地长三乘除,四加减,五移位千万别把鱼忘记,它在盛饭的厨子里小灯大灯灯灯不等爸喂鱼,舅疑惑,裸鸡也疑惑十三姨,十四父,十五逗,兜到低 "圆下箭头一顿号"指的是第15级的运算符.其中圆指的是运算符(),下指的是下标运算符[],箭头指的是指向结构体成员运算符->,顿号指的是结构体成员运算符. "非凡增减富强针地长"指的是第14级的运算符.其中非指的是逻辑运算符!,凡指的是按位取反运算符~,增减指的是自增和

  • 详解R语言中的表达式、数学公式、特殊符号

      在R语言的绘图函数中,如果文本参数是合法的R语言表达式,那么这个表达式就被用Tex类似的规则进行文本格式化. y <- function(x) (exp(-(x^2)/2))/sqrt(2*pi) plot(y, -5, 5, main = expression(f(x) == frac(1,sqrt(2*pi))*e^(-frac(x^2,2))), lwd = 3, col = "blue") library(ggplot2) x <- seq(0, 2*pi, b

  • R语言运算符知识点讲解

    运算符 运算符:包含一个或者两个参数的无括号的参数 符号 说明 + - * ^ %% 取模运算 %/% 整除运算 可以定义自己的二元运算符 `%myop%` = function(a, b){ 2*a + 2*b } > 1 %myop% 1 [1] 4 一些特殊的语言结构也是二元运算符 例如:赋值运算符<-,索引[],函数调用max(a, b) 运算顺序 运算符的优先级 (按优先级排序) 运算符 描述 ({ 函数调用和分组表达式 [ [[ 索引 :: ::: 访问命名空间中的变量 $ @ 成

随机推荐