数据类型

1.基本数据类型:

基本数据类型最主要的特点是,其值不可以分解为其他类型。也就是说,基本数据类型是

自我说明的

2.构造数据类型:

构造数据类型是根据已定于的一个或多个数据类型用构造的方法来定义的。也就是说,

一个构造类型的值可以分解为若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在c语言中

构造类型有以下几种:

  ·数据类型

  ·结构体类型

  ·共同体(联合)类型

3.指针类型:

指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个变量在内存储器中的地址。虽然指针变量的取值

类似与整型量, 但这是两个类型完全全不同的量, 因此不能混为一谈。

4.空类型:

在调用函数值时, 通常应向调用者返回一个函数值。这个返回的函数值是具有一定数据类型的,应在函数

定义和函数说明中给予说明, 例如在例题中给出的max函数定义中, 函数头为int max(int a, int b);

其中“int”类型说明符即表示该函数的返回值为整型量。但是, 也有一类函数,调用后并不需要向调用者返回

函数值,这种函数可以定义为“空类型”。其类型说明符为“void”, 在后面继续介绍

常量

整型, 浮点, 字符, 枚举等

在执行过程中,其值不发生改变的量称为常量。

符号常量:用标识符代表一个常量。在c语言中, 可以用一个标识符表示一个常量, 称之为符号常量。

符号常量在使用之前必须先定义, 其一般形式为:

#define 标识符 常量

其中#define 也是一条预处理命令(预处理命令都以#开头), 称为宏定义命令(在后面预处理程序中将进一步介绍), 其功能是把标识符定义为其后的常量值。一经定义, 以后在程序中所有出现该标识符的地方均代之以该常量值。

注意:习惯上符号常量的标识符用大写字符, 变量标识符用小写字母, 以示区别。

#include <stdio.h>
#include <stdlib.h>
#define AAA 20 void main()
{
printf("%d", AAA);
}

变量

整型, 浮点, 字符, 枚举等

其值可以改变的量称之为变量。一个变量应该有一个名字, 在内存中占据一定的存储单元

变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念

整型

八进制整常数:

八进制整常数必须以0开头, 即以0作为八禁进制数的前缀。数码取值为0~.八进制数通常为无符号数。

以下各数是合法的八进制:

(十进制13)、(十进制为65)、(十进制为65535)

十六进制整常数:

十六进制整常数的前缀为0x或0X.其数码取值为0~, A~F或a~f.

以下各数是合法的十六进制整常数:

0X2A(十进制为42), 0XA0(十进制为160), 0XFFFF(十进制为65535);

整型常数的后缀:

在16位字长的机器上,基本整型的长度也为16位, 因此表示的数的范围也是限定的。

十进制无符号整常熟的范围为0~。

八进制无符号数的表示范围为0~.

十六进制无符号数的表示范围为0X0~0XFFFFF或0x0~0xFFFFF。

如果使用的数超过了上述范围, 就必须用长整型数来表示。长整型数是用后缀"L"或‘l’来表示的

整型变量的分类, 默认int是有符号

整型变量的分类

格式:

int a, b, c;

注意别忘了分号和英文的逗号
放在函数的开头

(注意:这里占多少个字节跟系统和编译器规定有关!可以在编译器上自己试试查看)

1. 基本型:类型说明符为int, 在内存中占4个字节。

2. 短整量:类型说明符为short int 或short。所占字节和取值范围均与基本型相同。

3. 长整型:类型说明符为long int 或long。

4.无符号型:类型说明符为unsigned。(包括unsigned int, unsigned short int , unsigned log)

标注:下图的wchar_t 表示的是 

char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位,总之,wchar_t所能表示的字符数远超char型。

wchar_t

欠:后期补充,因为没有搞懂unsigned

注意:整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。

#include <stdio.h>
//查看编译器的字节数 void main()
{
printf("%d", sizeof(int));
}

整型数据的溢出

负数十进制的补码

浮点型(实型)4字节(32位)

浮点数常量的表示方法:

浮点型也成为实型。也可以称为世数或者浮点数。在c语言中, 浮点数只采用十进制。

他有两种形式:十进制小数形式, 指数形式。

)。 十进制形式:

例如:0.00, 25.00, 2323.2324, 1423.23232332, -.02323等
)。指数形式:

由十进制数, 加阶码标志"e"或“E”以及阶码(只能为整数,可以带符号)组成。

形式:

aEn(a为十进制数, n为十进制整数)

4.576064086519205e-47   #0.00002323**10
2.2E5 意思就是2.2 * 10的5次方 == 2.2 * 10^5(或者10**5)
-2.5E-2 意思就是-2.5 * 10^-2 (10^-2 就是0.01) 结果是0.025

浮点数分类

单精度: float

双精度: double

长双精度: long double

c语言数据类型、运算符和表达式的更多相关文章

  1. 第二章 C#语法基础 (2.2 C#语言的运算符和表达式)

    [案例]本案例通过随机数发生器随机产生三条边,要求输出三天边长(边长长度为1~20的整数),并判断是否可以构成一个三角形. 如果可以,则计算出三角形面积,否则输出信息”三条随机的边不能构成三角形“. ...

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

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

  3. C语言之运算符和表达式

    运算符优先级: 求余运算用法: 声明变量的名字和类型: 变量的类型决定占用内存空间的大小.数据的存储形式,合法的表数范围.可参与的运算种类.变量名标识了内存中的一个存储单元. 自动类型转换: 运算符和 ...

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

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

  5. C语言之运算符、表达式和语句

    #include<stdio.h> #define ADJUST 7.31 int main(void) { const double SCALE = 0.333; double shoe ...

  6. 重学C语言---05运算符、表达式和语句

    一.循环简介 实例程序 /*shoes1.c--把一双鞋的尺码变为英寸*/#include <stdio.h>#define ADJUST 7.64#define SCALE 0.325 ...

  7. iOS开发环境C语言基础 运算符和表达式

    1 年龄判断程序 1.1 问题 本案例需要使用交互的方式判断年龄的范围:用户从控制台输入一个年龄,由程序判断该年龄是否在18~50岁之间.程序交互过程如图-1所示: 图-1 1.2 步骤 实现此案例需 ...

  8. C语言入门(5)——运算符与表达式

    C语言中运算符和表达式数量之多,在高级语言中是少见的.正是丰富的运算符和表达式使C语言功能十分完善.这也是C语言的主要特点之一. C语言的表达式由运算符.常量及变量构成.C语言表达式基本遵循一般代数规 ...

  9. C运算符和表达式

    C语言入门(5)——运算符与表达式   版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究. https://blog.csdn.net/yinch ...

  10. C语言复习————基本数据类型、运算符和表达式

    数据类型/运算符/表达式 主要分两部分介绍,第一部分介绍常用的数据类型,例如:常量和变量/整型/实型/字符型:第二部分介绍算数运算符和算数表达式以及赋值运算符和逗号运算符. 一. 常用的数据类型 1. ...

随机推荐

  1. 深入理解Linux内核-信号

    信号:1.最初被引入作为用户态进程间通信2.内核也使用信号通知进程系统所发生的事件3.信号很短,发送给进程的唯一信息通常是一个数.4.名称通常以SIG为前缀5.信号时可消费资源,每个信号只能被传递一次 ...

  2. C#实现RSA加密与解密、签名与认证

    一.RSA简介 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力 ...

  3. nginx upstream 常用的几种调度方式

    nginx可以根据客户IP进行负载均衡,在upstream里设置ip_hash,以可以对同一个C类地址段的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个.C类地址:C类地址第1字节.第2 ...

  4. 每日英语:How the College Bubble Will Pop

    The American political class has long held that higher education is vital to individual and national ...

  5. 图解zookeeper FastLeader选举算法【转】

    转自:http://codemacro.com/2014/10/19/zk-fastleaderelection/ zookeeper配置为集群模式时,在启动或异常情况时会选举出一个实例作为Leade ...

  6. 【驱动】USB驱动实例·串口驱动·键盘驱动

    Preface   USB体系支持多种类型的设备. 在 Linux内核,所有的USB设备都使用 usb_driver结构描述.    对于不同类型的 USB设备,内核使用传统的设备驱动模型建立设备驱动 ...

  7. VMWare ESX/ESXi 虚拟机硬盘的厚置备(Thick Provision)与精简置备(Thin Provision)的转换

    VMWare ESX/ESXi 有两种硬盘置备方式,厚制备(thick)和精简置备(Thin) 有时可能会由于性能问题或磁盘空间需要将虚拟机磁盘在两种模式间进行互转,虽然在虚拟机配置页面是没有办法修改 ...

  8. oracle Plsql 执行update或者delete时卡死问题解决办法

    PLSQL删除记录 delete from OT_Table 程序一直在执行... 原因: 在执行  修改 的时候没有commit,oracle将该记录锁住了. 可以通过以下办法解决: 先查询锁定记录 ...

  9. SP_OACreate提权经验

    在xp_cmdshell被删除或者出错情况下,可以充分利用SP_OACreate进行提权   首先   EXEC sp_configure 'show advanced options', 1;   ...

  10. [转]SSH和SSM对比总结

    原文地址:https://blog.csdn.net/peak_and_valley/article/details/52925032 当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知 ...