本节用来介绍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. UE4射击小游戏原型

    尝试使用了下blueprint,不知道是bug还是不熟悉,blueprint有些地方运行的跟逻辑不太一样.不管ue4目前,快速做原型倒是蛮方便的.就等着官方发更多教程讲述关于新的matinee,Nav ...

  2. Doker容器之间连接

    第一个应用容器 $ sudo docker run --name=mysql_client1 --link=mysql_server:db -t -i kongxx/mysql_client /usr ...

  3. ASP.NET CORE RAZOR :将文件上传至 ASP.NET Core 中的 Razor 页面

    本部分演示使用 Razor 页面上传文件. 本教程中的 Razor 页面 Movie 示例应用使用简单的模型绑定上传文件,非常适合上传小型文件. 有关流式传输大文件的信息,请参阅通过流式传输上传大文件 ...

  4. 通过Cloudera Manager安装CDH 5.6

    CDH的简介 大家常常说CDH.其全称是:Cloudera's Distribution Including Apache Hadoop.简单的说是Cloudera公司的Hadoop平台,是在Apac ...

  5. org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述 启动hibernate测试案例时报错如下: 2.解决方案: 2.1 第一次解决:MySQL驱动版本太高.使用的hibernate版本为5 ...

  6. java学习笔记——java中对象的创建,初始化,引用的解析

    如果有一个A类. 1.例如以下表达式: A  a1 = new A(); 那么A是类,a1是引用.new A()是对象.仅仅是a1这个引用指向了new A()这个对象. 2.又如: A  a2; A代 ...

  7. BMP图片的C++水印算法

    http://wenku.baidu.com/link?url=aVenUhViH9f6At4Lj_As7Rzp_eJWXTcmbUTH0qazd1Y1ZYiU3i1j0pM3G0r_PViIecsv ...

  8. 4Sum_leetCode

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  9. go的url解析

    对于解析url,是一个常见的场景,下面就来说这个,直接见代码: package main import ( "fmt" "net/url" "stri ...

  10. 使用Erlang实现简单的排序算法:快速排序,冒泡排序,插入排序

    [排序算法] -module(sort). -compile(export_all). %%快速排序 qsort([]) -> []; qsort([Pivot|T]) -> qsort( ...