c的详细学习(2)数据类型,运算符与表达式
2016-03-30 09:00
309 查看
[b] 本节用来介绍c语言中的数据类型和运算符。[/b]
[b] (1)c语言的基本符号:[/b]
任何一种基本语言都有自己的基本词汇表。c语言的基本词汇表有一下几部分:
*数字10个;
*英文字母:大小写各26个;
*下划线字符“_”;
*运算符:表达程序的基本操作使用的一些符号;
*关键字:职位表达程序功能使用的一些英文单词或单词缩写;
[b] (2)标识符:[/b]
标识符是用来为符号常量,变量,函数,数组,类型,文件命名的有效字符序列。命名规则如下:
*只能有数字字母和下划线组成;
*第一个字符必须使用字母或者下划线;
*不能使用关键字;
*区分大小写;
*ANSI C没有规定标识符的长度,各个操作系统允许的标识符的长度不一样。Turbo C规定标识符最长为32个字符,但一般建议标识符的长度最好不超过8个;
用标识符形式标识的有常量,变量,和关键字。
[b] (3)c语言的数据类型:[/b]
16进制数以0x或者0X开头,并由数字0~9和字符a~f或者字符A~F组成的数字序列。习惯上,以0x开头时用小写字母,以0X开头时用大写字母。一个整型变量后面加上一个字母L或者小写l,则明确指出该变量是long int型的,这种处理方式往往用于函数调用时参数传递过程中。
用指数形式表达小数:一般格式是“实数(整数)+e(或者E)+整数”。
许多c的编译系统将实型常量当做双精度来处理。例如:
float x;
x=1.23454*6832.12;
系统将把1.23454和6832.12按双精度来存储(占64位)和运算,得到一个双精度的乘积,然后取前7位赋给变量x.这样可以保证结果更加精确。但是降低了运算的速度。可以在数的后面加上f或者F,则数字将按照单精度(占32位)存储和计算。
双精度Double与单精度Float的比较:
由此看出,由于float型变量a只能接受7位有效数字,因此最后三位是不准确的,但double型数字是可以全部接受10位有效数字的。
[b] (4)常用转义字符:[/b]
\165中165是8进制数,转换为十进制数ASCII码为117,’\165‘表示字符'u'。
无论字符变量还是字符常量,在内存中都只占一个字节,用来存放一个字符。字符在内存中是以ASCII码来进行存储的。字符型数字既可以用整数形式输出也可以用字符格式输出。
[b] (5)运算符和表达式:[/b]
5.1逗号运算符
5.2强制类型转换
对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。
强制类型转换运算符的优先级高于取余运算符。
5.3自增运算和自减运算
自增运算符和自减运算符是c语言特有的单目运算符,他们只能和一个单独的变量组成表达式。
x++和++x的相同之处是:单独作为一个表达式语句被使用时,无论执行了哪一种表达式,执行结束后x的值都加1.
x++和++x的不同之处是:当他们出现在其他表达式中时,也就是说作为其他表达式的一部分时,两个表达式的结果是不一样的。++x的值等于原值+1,x++的值等于x的原值。
5.4位运算
c语言是为开发系统软件而设计的,因此它提供了操作二进制数的功能,这些功能通常只有汇编语言才具有。
应用举例:
运行结果如下:(分别为取反,与,或,异或,右移与左移)
[b] (1)c语言的基本符号:[/b]
任何一种基本语言都有自己的基本词汇表。c语言的基本词汇表有一下几部分:
*数字10个;
*英文字母:大小写各26个;
*下划线字符“_”;
*运算符:表达程序的基本操作使用的一些符号;
*关键字:职位表达程序功能使用的一些英文单词或单词缩写;
[b] (2)标识符:[/b]
标识符是用来为符号常量,变量,函数,数组,类型,文件命名的有效字符序列。命名规则如下:
*只能有数字字母和下划线组成;
*第一个字符必须使用字母或者下划线;
*不能使用关键字;
*区分大小写;
*ANSI C没有规定标识符的长度,各个操作系统允许的标识符的长度不一样。Turbo C规定标识符最长为32个字符,但一般建议标识符的长度最好不超过8个;
用标识符形式标识的有常量,变量,和关键字。
[b] (3)c语言的数据类型:[/b]
16进制数以0x或者0X开头,并由数字0~9和字符a~f或者字符A~F组成的数字序列。习惯上,以0x开头时用小写字母,以0X开头时用大写字母。一个整型变量后面加上一个字母L或者小写l,则明确指出该变量是long int型的,这种处理方式往往用于函数调用时参数传递过程中。
用指数形式表达小数:一般格式是“实数(整数)+e(或者E)+整数”。
许多c的编译系统将实型常量当做双精度来处理。例如:
float x;
x=1.23454*6832.12;
系统将把1.23454和6832.12按双精度来存储(占64位)和运算,得到一个双精度的乘积,然后取前7位赋给变量x.这样可以保证结果更加精确。但是降低了运算的速度。可以在数的后面加上f或者F,则数字将按照单精度(占32位)存储和计算。
双精度Double与单精度Float的比较:
#include<stdio.h> int main(){ float a; double b; a=1234.111111; b=1234.111111; printf("a=%f\nb=%f\n",a,b); }
由此看出,由于float型变量a只能接受7位有效数字,因此最后三位是不准确的,但double型数字是可以全部接受10位有效数字的。
[b] (4)常用转义字符:[/b]
(\0 空字符 0) (\t 水平制表,跳到下一个Tab位置 9) (\r 回车,将当前位置移到本行的开头 13) (\n 换行,将当前位置移到下一行的开头 10) (\' 双撇号 34),(\"" 单撇号 39)
#include<stdio.h> int main(){ printf("c\tlanguages\be\rC\n"); printf("is\tusef\165\x6c\n"); return 0; }
\165中165是8进制数,转换为十进制数ASCII码为117,’\165‘表示字符'u'。
无论字符变量还是字符常量,在内存中都只占一个字节,用来存放一个字符。字符在内存中是以ASCII码来进行存储的。字符型数字既可以用整数形式输出也可以用字符格式输出。
[b] (5)运算符和表达式:[/b]
5.1逗号运算符
#include<stdio.h> int main(){ int m=1,n=2; int a; a=(m+n,m-n); printf("a的值为%d,表达式的值为%d\n",a,a=(m+n,m-n)); a=m+n,m-n; printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n)); a=m+n,m-n+a; printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n+a)); printf(""); return 0; }
5.2强制类型转换
对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。
#include<stdio.h> int main(){ double y=7.56; int a=2,b; b=(int)y%a; printf("b=%d,",b); printf("y=%f\n",y); return 0; }
强制类型转换运算符的优先级高于取余运算符。
5.3自增运算和自减运算
自增运算符和自减运算符是c语言特有的单目运算符,他们只能和一个单独的变量组成表达式。
x++和++x的相同之处是:单独作为一个表达式语句被使用时,无论执行了哪一种表达式,执行结束后x的值都加1.
x++和++x的不同之处是:当他们出现在其他表达式中时,也就是说作为其他表达式的一部分时,两个表达式的结果是不一样的。++x的值等于原值+1,x++的值等于x的原值。
5.4位运算
c语言是为开发系统软件而设计的,因此它提供了操作二进制数的功能,这些功能通常只有汇编语言才具有。
应用举例:
#include<stdio.h> int main(){ unsigned int A=0xb3,B=0x9a; printf("~A=%x\n",~A); printf("A&B=%x\n",A&B); printf("A|B=%x\n",A|B); printf("A^B=%x\n",A^B); A=27;B=28; printf("A<<1=%u\n",A<<1); printf("A>>1=%u\n",B>>1); return 0; }
运行结果如下:(分别为取反,与,或,异或,右移与左移)
相关文章推荐
- Laravel路由设定和子路由设定实例分析
- 八大排序算法
- 分布式系统中的高可用若干问题
- CDCE913产生任意频率
- 分析Linux内核创建一个新进程的过程
- Java中的命名与目录接口JNDI基本操作方法概览
- Linux多线程编程---条件变量
- algrothm_将正整数分解质因数
- IT行业导览-4.1-软件工程师
- http://blog.163.com/zhangmihuo_2007/blog/static/27011075201392685751232/
- 2016年3月第二次更新,1000多册好书上架
- python简单实现刷新智联简历
- Android面试实战总结
- 上线被拒,说是 分享路径不合适,分享了不改分享的东西
- 分布式高性能的若干问题
- MySql 下载安装使用。
- Android - day four 四大组件之 Service
- RFC3984: RTP Payload Format for H.264 Video(中文版)
- Merge k Sorted Lists
- OpenAIS学习笔记