本节用来介绍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)数据类型,运算符与表达式的更多相关文章

  1. java与.net比较学习系列(4) 运算符和表达式

    上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...

  2. JS基础-数据类型-运算符和表达式-变量和常量

    1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ...

  3. 03-java学习-基本数据类型-运算符-键盘接收用户输入

    java的八大基本数据类型: 类型转换的基本原则: java整数的默认类型是int,小数的默认类型是double 运算符: 算术运算符.连接.赋值.关系.逻辑.三目运算符等…… 键盘接收用户输入: j ...

  4. Python学习笔记----数据类型 运算符 循环 条件判断

    1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...

  5. C语言学习笔记二---数据类型运算符与表达式

    一.C的基本语法单位 1.标识符:有效长度:31(DOS环境下) 2.关键字:main不是 3.分隔符:空格符,制表符,换行符,换页符 4.注释符:a./*.....*/   b.// 二.C的常用输 ...

  6. 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式

    本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式

  7. Objective-C中的数据类型、常量、变量、运算符与表达式

    1.Objective-C中的数据类型: Objective-C中的基本数据类型有:int.char(-128-127).float.double.BOOL,Byte(0-255) Id类型相当于(等 ...

  8. JavaSE| 数据类型| 运算符| 进制与补码反码等

    JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...

  9. js学习之数据类型

    js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...

随机推荐

  1. ExtJs的Ext.grid.GridPanel不能选择复制表格中的内容解决方案

    今天遇到grid复制的问题,在网上找到了一个解决办法,只需改下CSS和JS,给大家分享一下: 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dy_paradise/a ...

  2. Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your datab

    Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your datab ...

  3. UIWebView 加载网页、文件、 html

    UIWebView  是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过al ...

  4. Swing中GridBagLayout布局的使用

    1 http://pydoing.blogspot.com/2011/05/java-gridbaglayout.html  台湾人博客,需FQ 2 http://zhangjunhd.blog.51 ...

  5. [译]GLUT教程 - 移动镜头2

    Lighthouse3d.com >> GLUT Tutorial >> Input >> Move the Camera II 本节的最后一个示例是回顾.现在我们 ...

  6. Linux上部署Java应用+Python3环境搭建

    给了Linux的测试环境,目前需要install JDK, Tomcat,此处记录下小白的操作过程. 1. 查询Linux发行版本,包括内核信息 (1) Linux查询内核信息 $ uname -a ...

  7. 定时器:Timer:System.Threading.Timer类(转)

    最近的一个项目有一些地方需要用到定时功能,在设计过程中,突然发现.net的Timer类居然还有很多我以前没有用过的功能,这里就跟大家分享一下 注:这里的Timer类特指System.Threading ...

  8. emacs的常用配置备份

    据说有人搞丢了自己的emacs的配置,然后一怒之下抛弃了emacs投身vim,我还是做个emacs配置的备份吧, 虽然我现在也算不上emacs的发烧友. 这里的配置大多是从网上参考的,最多的是下面的链 ...

  9. shiro自定义拦截url

    在实际项目上,我们针对不同的用户(guste,user,admin,mobile user)等等,需要进入不同的页面,比如,手机端用户需要进入Mobile/这个路径下的,这个时候,我们需要自定义拦截u ...

  10. 微信小程序之如何注册微信小程序

    所有文章均是CSDN博客所看,已按照作者要求,注明出处了,感谢作者的整理! 博客文章地址:http://blog.csdn.net/michael_ouyang/article/details/546 ...