目录:

一、类型转换

二、条件运算符

三、逗号运算符

四、运算符优先级

回到顶部

一、类型转换

1.类型升级,浮点型高于整型,长整型高于整型,有符号与无符号取有符号。

2.在C语言中,类型转换没有提示。

高 long double

double

float

long long

long

低 int

低精度的值付给高精度的值是没问题的

高精度的值付给低精度可能有问题

3.其他转换,浮点型和整型转换,转换浮点型(double)在运算。short/char的运算转成int后运算。

4.如果程序进行类型转换,可以使用强制类型转换,

格式:目标类型 变量=(目标类型)原类型变量

不管表达式的类型比强制的类型高还是低,都是可以的。

注意:类型转换的时候,实际是建立一个新的变量(开辟新的存储空间),原有的变量不变。

#include <stdio.h>

int main()
{
int i = ;
float f = i;
printf("f:%f\n",f);
int i2 = ;
//强制类型转换
char c = (char)i2;//高精度->低精度
printf("c:%d\n",c);
printf("i+f:%lf\n",i+f);//lf是double类型占位符
int i3 = ;
float f2 = i3;
f2 += ;
printf("i3:%d\n",i3);
printf("f2:%f\n",f2);
return ;
}

回到顶部

二、条件运算符

1.又叫多目运算符,三目运算符

2.语法格式:条件表达式?表达式1 :表达式2

若条件表达式为真,则条件表达式的值位表达式1的值,否则为表达式2的值。

若表达式1和表达式2为不同的类型时,整个条件表达式的类型为二者中精度较高的类型。

练习:在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。

#include <stdio.h>
//在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
int main()
{
printf("请输入一个字母:\n");
char c;
char c1;
scanf("%c",&c);
c1 = (c >= 'a' && c <= 'z') ? c-('a'-'A') : c;
printf("%c转换为大写:%c\n",c,c1);
return ;
}

char c = '\101';这里是八进制的数。

回到顶部

三、逗号运算符

1.i=(表达式1,表达式2,表达式n);i = (j+1,k+1,l+1);

2.整个表达式以此计算各表达式的值,值以表达式n的值作为整个表达式的值,类型以表达式n的类型为整个表达式的类型。注:前面的表达式不会运算,是没有意义的。

3.并不是所有出现逗号的地方都组成逗号表达式,如果在声明变量、函数参数中逗号的作用就是分隔符。int i = 10,j = 20,k = 30,l = 40;

#include <stdio.h>

int main()
{
int i = ,j = ,k = ,l = ;
i = (j+,k+,l+);//取最后l+1的值,前边的表达式并不计算
//i = j+1,k+1,l+1;//k和l的值不改变
printf("i:%d\n",i);
printf("k:%d\n",k);//j和k的值并没有改变
printf("l:%d\n",l);
return ;
}

回到顶部

四、运算符优先级

1.单目运算符(++、--)较高,赋值运算符低,算术运算符较高,关系运算符和逻辑运算符较低,从高到底参考关系:如

高  初等运算符:(),[ ]

|        单目运算符:!、++、--、-、类型转换、&、*、sezeof()

|        算术运算符:* / + -

|        关系运算符:>  >=  <  <=  ==  !=

|        逻辑运算符:! 高于 && 高于 ||

|        条件运算符:?:

|        赋值运算符:=  +=  -=

低          逗号运算符: ,

注:如果无法确定优先级,可使用()。

2.运算顺序(结合性),多数运算符具有左结合性,单目/三目/赋值运算符具有右结合性。

左结合性:a+b+c  =>  (a+b)+c

右结合性:a=b=c  =>  a=(b=c)

注:表达式的类型是参与该表达式的各种操作数中类型最高的。

06-C语言运算符2的更多相关文章

  1. C语言运算符优先级和ASCII表

    1. C语言运算符优先级及结合性 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成 ...

  2. C语言运算符和优先级

    关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下:        a.算术运算        C语言一共有34种运算符,包括常见的加减乘除运算.        1) 加法:+ 还可以表 ...

  3. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

  4. 一道c语言运算符优先级问题

    一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...

  5. [转]说说C语言运算符的“优先级”与“结合性”

    补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...

  6. 李洪强-C语言7-C语言运算符

    C语言运算符 一.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. ①. 加法:+ 还可以表示正号 ②. 减法:- 还可以表示负号 ③. 乘法:* 非数学意义上的X ④. 除法:/  注意 ...

  7. C语言的本质(7)——C语言运算符大全

    C语言的本质(7)--C语言运算符大全 C语言的结合方向 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左).例如算术运算符的结合性是自左至右,即先左后右.如有表达式 x- ...

  8. C语言运算符优先级总结

    一 写在开头1.1 本文内容本文内容为C语言中运算符优先级的总结.转载于:https://blog.csdn.net/huangblog/article/details/8271791,感谢原作者的付 ...

  9. 说说C语言运算符的“优先级”与“结合性”

    论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时.但从本质上看,仍然是概念理解上的偏差.本文试图通过对三个典型表达式的分析,集 ...

  10. C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

随机推荐

  1. VS2008一个小bug

    vc工程的项目属性里MFC的使用有三项:默认“使用标准windows库”,修改为“在静态库中使用MFC”,然后再改回默认,项目变化如下: 今天的工程在改过后编译不能通过,手工把0改回2(1改回3)后O ...

  2. Object-c KVC的使用和举例

    如果我们的对象需要使用KVC,必须符合object-c的非正式协议NSKeyValueCoding.我们可以简单的来理解KVC,即所有符合KVC机制的对象都看成一个字典(NSDictionary),对 ...

  3. MVC-04 视图(1)

    不可否认的,View应该是整个ASP.NET MVC项目开发过程中最花时间的部分,因为与显示逻辑相关的技术五花八门,你可能要学习的有HTML.CSS.JavaScript.DOM.JQuery.JSO ...

  4. MyEclipse 怎样手动编译整个项目

    去掉自动编译的对勾,项目上就有build project,在菜单project->>build automatically. MyEclipse 菜单 Project->Build ...

  5. TCP/IP笔记 三.运输层(3)——TCP超时重传算法

    TCP 每发送一个报文段,就对这个报文段设置一次计时器.只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段 1. 平均往返时延RTT 往返时延:一个报文段发出的时间,以及收到相应的确认报文 ...

  6. Android中GridView的使用——使用自带的SimpleAdapter(简单适配器)

    GridView一直是一个系统登录后以九宫格方式展现功能子模块的最佳选择,经过试验和网上资料的查阅,现把实现方式总结一下: 一直是通过自定义Adapter方式,在getView()方法中设置图片的显示 ...

  7. Mac OS使用技巧之十五:快捷方便的Mini Dock

    Mini Dock是前面忘记了提,这里做一些补充.       Mini Dock是Mac OSX的一个值得大书特书的亮点.尽管windows下也有类似的东西,但Mac下却提供了更为全面的功能.通过M ...

  8. ping的意思

    Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令.Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机 ...

  9. 正则RegEXp

    JavaScript RegExp 对象 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/attributes 创建 RegE ...

  10. BZOJ 4143 The Lawyer

           这道题看起来很吓人,但事实上看懂后会发现,其根本没有任何技术含量,做这道题其实要考虑的就是每天最早结束的一场的结束时间以及最晚开始的一场的开始时间,如果结束时间早于开始时间,那么OK就这 ...