c的详细学习(2)数据类型,运算符与表达式
本节用来介绍c语言中的数据类型和运算符。
(1)c语言的基本符号:
任何一种基本语言都有自己的基本词汇表。c语言的基本词汇表有一下几部分:
*数字10个;
*英文字母:大小写各26个;
*下划线字符“_”;
*运算符:表达程序的基本操作使用的一些符号;
*关键字:职位表达程序功能使用的一些英文单词或单词缩写;
(2)标识符:
标识符是用来为符号常量,变量,函数,数组,类型,文件命名的有效字符序列。命名规则如下:
*只能有数字字母和下划线组成;
*第一个字符必须使用字母或者下划线;
*不能使用关键字;
*区分大小写;
*ANSI C没有规定标识符的长度,各个操作系统允许的标识符的长度不一样。Turbo C规定标识符最长为32个字符,但一般建议标识符的长度最好不超过8个;
用标识符形式标识的有常量,变量,和关键字。
(3)c语言的数据类型:
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位有效数字的。
(4)常用转义字符:
(\ 空字符 )
(\t 水平制表,跳到下一个Tab位置 )
(\r 回车,将当前位置移到本行的开头 )
(\n 换行,将当前位置移到下一行的开头 )
(\' 双撇号 34),(\"" 单撇号 39)
#include<stdio.h> int main(){
printf("c\tlanguages\be\rC\n");
printf("is\tusef\165\x6c\n");
return ;
}
\165中165是8进制数,转换为十进制数ASCII码为117,’\165‘表示字符'u'。
无论字符变量还是字符常量,在内存中都只占一个字节,用来存放一个字符。字符在内存中是以ASCII码来进行存储的。字符型数字既可以用整数形式输出也可以用字符格式输出。
(5)运算符和表达式:
5.1逗号运算符
#include<stdio.h> int main(){
int m=,n=;
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 ;
}
5.2强制类型转换
对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。
#include<stdio.h> int main(){
double y=7.56;
int a=,b;
b=(int)y%a;
printf("b=%d,",b);
printf("y=%f\n",y);
return ;
}
强制类型转换运算符的优先级高于取余运算符。
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=;B=;
printf("A<<1=%u\n",A<<);
printf("A>>1=%u\n",B>>);
return ;
}
运行结果如下:(分别为取反,与,或,异或,右移与左移)
c的详细学习(2)数据类型,运算符与表达式的更多相关文章
- java与.net比较学习系列(4) 运算符和表达式
上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...
- JS基础-数据类型-运算符和表达式-变量和常量
1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ...
- 03-java学习-基本数据类型-运算符-键盘接收用户输入
java的八大基本数据类型: 类型转换的基本原则: java整数的默认类型是int,小数的默认类型是double 运算符: 算术运算符.连接.赋值.关系.逻辑.三目运算符等…… 键盘接收用户输入: j ...
- Python学习笔记----数据类型 运算符 循环 条件判断
1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...
- C语言学习笔记二---数据类型运算符与表达式
一.C的基本语法单位 1.标识符:有效长度:31(DOS环境下) 2.关键字:main不是 3.分隔符:空格符,制表符,换行符,换页符 4.注释符:a./*.....*/ b.// 二.C的常用输 ...
- 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式
本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式
- Objective-C中的数据类型、常量、变量、运算符与表达式
1.Objective-C中的数据类型: Objective-C中的基本数据类型有:int.char(-128-127).float.double.BOOL,Byte(0-255) Id类型相当于(等 ...
- JavaSE| 数据类型| 运算符| 进制与补码反码等
JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...
- js学习之数据类型
js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...
随机推荐
- 通过mysql show processlist 命令检查mysql锁的方法
作者: 字体:[增加 减小] 类型:转载 时间:2010-03-07 show processlist 命令非常实用,有时候mysql经常跑到50%以上或更多,就需要用这个命令看哪个sql语句占用资源 ...
- Android开发环境搭建 for windows (linux类似) 详细可参考“文件”中“Android开发环境搭建.pdf ”
ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通 ...
- C#中FileStream和StreamWriter/StreamReader的区别
首先致谢!转自:http://blog.sina.com.cn/s/blog_67299aec0100snk4.html 本篇可能不是非常深入,但是胜在清晰明了 FileStream对象表示在 ...
- 500 lines or less
今天碰到一本书 <500 lines or less>突然就想在博客上记录一下自己的阅读经历了. 现在记录一下这本书的地址 http://aosabook.org/en/index.htm ...
- Mqtt协议IOS端移植2
MqttFramework.h #import <Foundation/Foundation.h> #import "MQTTClient.h" #import &qu ...
- stage3D基础四----Stage3D和透视投影的使用(转)
原文地址: http://www.adobe.com/cn/devnet/flashplayer/articles/perspective-projection.html 引言 在本教程中,你将了解透 ...
- oracle中直方图的使用
本文从不绑定变量和绑定变量两种情况讨论直方图的作用 一.不绑定变量 SQL> create table test(name varchar2(10));表已创建.SQL> insert i ...
- watch 命令
watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...
- LVS+Keepalived(DR模式)学习笔记
1.简述 在互联网的中型项目中,单服务器往往已经无法满足业务本身的性能要求,这时候就会平行扩展,把负载分摊到数台服务器上(集群).一般实现集群有DNS轮询,LVS,nginx负载均衡. 集群主要目的包 ...
- Python读取文件数据
1题目要求: 文本文件有这些数据,需要的只有其中的5个属性,如下颜色标记 像以下的数据达到75万组: 1product/productId: B0000UIXZ4 2product/title: Ti ...