设为首页 加入收藏

TOP

C语言学习笔记(四)--运算符与表达式(下)(一)
2014-11-23 23:55:10 来源: 作者: 【 】 浏览:31
Tags:语言学习 笔记 运算 符与 表达式

1逗号运算符和逗号表达式

1.1逗号表达式格式:表达式1,表达式2,表达式3,...,表达式n;

该表达式的功能是:先计算表达式1,再计算表达式2,最后计算表达式n,最后一个表达式的值为此逗号表达式的值。

1.2逗号表达式的优先级:最低。

1.3逗号表达式的值:

例子代码:

#include "stdio.h"

main(){

int a,b,c;

a=1,b=2,c=a+b+3;

printf("%d,%d,%d\n",a,b,c);

c=(a++,a+=b,a-b); /*变量c保存逗号表达式的值*/

printf("%d,%d,%d\n",a,b,c); /*逗号表达式的作用为顺序求值*/

}

输出结果如下:

1,2,6

4,2,2

2关系运算符和关系表达式

2.1C语言中的真值和假值:C语言中没有逻辑型数据,所以C语言规定,用整型常量1来表示真值,所有非0的表达式和常量的逻辑值都为1,用整型常量0表示假值,只有表达式的值为0的常量和表达式的逻辑值为0。

关系表达式例子代码:

#include "stdio.h"

main(){

char x='m',y='n';

int n;

n=x

printf("%d\n",n);

n=x==y-1; /*取关系表达式x==y-1的值*/

printf("%d\n",n);

n=('y'!='Y')+(5<3)+(y-x==1); /*取关系表达式x==y-1的值*/

printf("%d\n",n);

}

程序运行结果:

1

1

2

关系表达式参加算术运算:

#include "stdio.h"

main(){

int a,b,c;

a=b=c=10; /*变量a,b,c赋初值*/

a=b==c;

printf("a=%d,b=%d,c=%d\n",a,b,c); /*注意等号与赋值号的区别*/

a=(b+(c++>2));

printf("a=%d,b=%d,c=%d\n",a,b,c);

/*关系表达式的值可以参加运算c++>2成立,值为1和b相加值放到a中存放*/

a=b>c*100;

printf("a=%d,b=%d,c=%d\n",a,b,c);

/*利用关系表达式计算要注意运算的优先级*/

}

程序运行结果:

a=1,b=10,c=10

a=11,b=10,c=11

a=0,b=10,c=11

3逻辑运算符和逻辑表达式

3.1基本逻辑运算符包括:单目运算符!,双目运算符&&、||。

逻辑与运算符例子代码:

#include "stdio.h"

#define PI 3.1415926

main(){

int m,n;

int k;

k=(m=0)&&(m=1);

printf ("%d,%d\n",m,k);

k=(m=1)&&(m=0);

printf ("%d,%d\n",m,k);

k=(m=2)&&(m=1)&&(m=0); /*多层逻辑与运算的规则测试*/

printf ("%d,%d\n",m,k);

m=0,k=0;

n=k++&&m++;

printf ("%d,%d,%d\n",k,m,n);

m=0,k=0;

n=m++&&k++; /*测试表达式k++&&m++与m++&&k++*/

printf ("%d,%d,%d\n",k,m,n);

}

程序运行结果:

0,0

0,0

0,0

1,0,0

0,1,0

逻辑或运算符例子代码:

#include "stdio.h"

main(){

int m,n;

int k;

k=(m=0)||(m=1); /*逻辑或运算的计算规则*/

printf ("%d,%d\n",m,k);

k=(m=1)||(m=0);

printf ("%d,%d\n",m,k);

k=(m=2)||(m=1)||(m=0); /*多层逻辑或运算的规则测试*/

printf ("%d,%d\n",m,k);

m=0,k=0;

n=++m||++k;

printf ("%d,%d,%d\n",k,m,n);

m=0,k=0;

n=++k||++m;

printf ("%d,%d,%d\n",k,m,n); /*测试表达式++k||++m与++m||++k+*/

}

程序运行结果:

1,1

1,1

2,1

0,1,1

1,0,1

逻辑与和逻辑或混合运算例子代码:

#include "stdio.h"

main(){

int m,k;

k=(m=0)||(m=1)&&(m=2); /*表达式理解为(m=0)||((m=1 )&&(m=2))*/

printf ("%d,%d\n",m,k);

k=(m=2)||(m=1)&&(m=0); /*表达式理解为(m=2)||((m=1)&&(m=0))*/

printf ("%d,%d\n",m,k);

k=(m=2)&&(m=1)||(m=0); /*表达式理解为((m=2)&&(m=1))||(m=0)*/

printf ("%d,%d\n",m,k);

k=(m=0)&&(m=1)||(m=2); /*表达式理解为((m=0)&&(m=1))||(m=2)*/

printf ("%d,%d\n",m,k);

}

程序运行结果:

2,1

2,1

1,1

2,1

4条件运算符和条件表达式

4.1条件运算符" :"是C语言中唯一的的三目运算符,优先级高于赋值运算

表达式语法: 表达式1 表达式2:表达式3

其执行顺序是:先求解表达式1,若为0则执行表达式2,否则执行表达式3。

例子代码:

#include "stdio.h"

main(){

char ch;

scanf("%c" , &ch); /* 输入一个字符,赋给变量ch */

ch=(ch>='A'&&ch<='Z') (ch+'a'-'A'):ch; /* 当字符为大写字母时,将其变为小写字母*/

printf("\n%c",ch);

}

5sizeof运算符

5.1sizeof是C语言的一种单目运算符,运算对象是变量名、表达式或数据类型标示符。功能是以字节形式给出操作数的存储大小。

5.2语法格式:sizeof(表达式) 或sizeof 表达式 或sizeof(数据类型)

6取地址运算符

6.1取地址运算符的运算对象只能是变量,运算结果为变量的存储地址。

7几种运算混合运用

例子代码:

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言学习笔记(七)--循环程序设.. 下一篇菜鸟修炼C语言小设计之――成绩统..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: