专题2-7优先级和类型转换分析
来源:互联网 发布:mac flash播放不了 编辑:程序博客网 时间:2024/04/29 11:55
1.
#include <stdio.h>#include <malloc.h>typedef struct _demo{ int* pInt; float f;} Demo;int func(int v, int m){ return (v & m != 0);}int main(){ Demo* pD = (Demo*)malloc(sizeof(Demo)); int *p[5]; int *f(); int i = 0; i = 1, 2; *pD.f = 0; free(pD); return 0;}
int *p[]; 根据优先级,是一个指针数组.
*pD.f 编译认为是*(pD.f);
a: '点'的优先级高于'*"
b. () 的优先级高于"*".
c. ==和!=高于位操作.
d: == 和!=高于赋值运算
e. 豆号运行是所有运算符中优先级最低的.
h. 算术运行符高于位移运算符号.
2. C语言隐式类型转换.
算术运算式中,低类型转换为高类型
赋值表达式中,表达式的值转换为左边变量的类型
函数调用时,实参转换为形参的类型
函数返回值,return表达式转换为返回值类型
char --->int -> unsigned int -> long -> unsigned long -> double<--- float
short--->
char --->short.
#include "stdafx.h"int main(int argc, char* argv[]){ char c ='c'; short s=0; printf("%d\n",sizeof(c)); printf("%d\n",sizeof(s+c));printf("%d\n",sizeof(c)); printf("Hello World!\n");return 0;}
类型转换的XX.#include <stdio.h>int main(){ int i = -2; unsigned int j = 1; if( (i + j) >= 0 ) { printf("i+j>=0\n"); } else { printf("i+j<0\n"); } printf("i+j=%d\n", i + j); return 0;}
上面邀打印输出的结果很奇怪.
输出
i+j>=0
i+j=-1
因为
%d:输入输出为整形 %ld 长整型 %hd短整型 %hu无符号整形 %u %lu
%s:输入输出为字符串 %c字符
%f:输入输出为浮点型 %lf双精度浮点型
如果改成以下代码
#include <stdio.h>int main(){ int i = -2; unsigned int j = 1; if( (i + j) >= 0 ) { printf("i+j>=0\n"); } else { printf("i+j<0\n"); } printf("i+j=%d\n", i + j); printf("i+j=%hu\n", i + j); printf("i+j=%0x\n", i + j); return 0;}
则打印输出
i+j>=0
i+j=-1
i+j=65535
i+j=ffffffff
- 专题2-7优先级和类型转换分析
- 优先级和类型转换分析
- 优先级和类型转换分析
- 优先级和类型转换分析
- 专题二 符号的技巧---- 14.优先级和类型转换分析
- 2.7、优先级和类型转换分析
- 类型转换和运算符优先级问题
- 类型转换和算符优先级
- 类型转换与优先级
- 运算优先级、类型转换
- java的运算优先级和字符串的类型转换
- c语言学习笔记(9)优先级及类型转换分析
- 面试题:类型转换与优先级问题
- 强制类型转换运算符的优先级
- [C/C++]c++运算符优先级和运算中类型转换问题!
- 第10节 C语言之运算符的优先级和类型转换
- struts2.X心得7--接收请求参数和struts类型转换介绍以及案例分析
- struts2.X心得7--接收请求参数和struts类型转换介绍以及案例分析
- Log4j属性文件配置的例子参考
- ubuntu下c/c++开发环境配置
- HTML5短语格式
- 2.1.6 ARM核简述
- 程序题:有多个33和1个199,找到不同的那个数字,不能对33和199进行硬比较
- 专题2-7优先级和类型转换分析
- 2.1.4 Thumb技术介绍
- 【Directx3D游戏开发】——简单渲染
- s3c2440 K9F2G08 nandflash支持硬件ECC校验
- DEDE模块MVC框架二次开发
- test
- 博客开张了!
- 2.1.3 ARM体系结构
- 织梦系统使用总结