数据类型

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. 【Android】1.2 创建Android模拟器

    分类:C#.Android.VS2015:  创建日期:2016-01-20 调试手机应用程序一般先用模拟器来实现,只是因为每次都发布到手机上调试太麻烦了.当应用程序在模拟器上调试没错后,再发布到手机 ...

  2. Viewpager 的相关总结

    1.修改切换item的时间 public class FixedSpeedScroller extends Scroller { ; public FixedSpeedScroller(Context ...

  3. RVM切换ruby版本号

    RVM是Ruby Version Manager的缩写,是一个命令行工具,它能够让你轻松地安装,管理和使用多个版本号的Ruby.不同的rails项目使用等ruby和rails版本号不一样的时候.能够使 ...

  4. android---笔记 AppContext extends Application

    package com.fuda; import org.apache.http.client.CookieStore; import com.fuda.model.StudentInfoModel; ...

  5. How do I measure JVM startup time?

    https://stackoverflow.com/questions/39321345/how-do-i-measure-jvm-startup-time PrintCompilation2 htt ...

  6. 深入理解Java中的逃逸分析

    在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件.第二段编译是把.class转换成机器指令的过程. ...

  7. 每日英语:The Risks of Big Data for Companies

    Big data. It's the latest IT buzzword, and it isn't hard to see why. The ability to parse more infor ...

  8. OpenSUSE安装软件

    zypper se xxxxx 是搜索软件包 zypper in xxxxx 跟你的apt-get install xxxx等价 zypper rm xxxx 删除 zypper up xxxx 更新 ...

  9. ListView数据更新后,自动滚动到底部(聊天时常用)| Listview Scroll to the end of the list after updating the list

    转:http://www.cnblogs.com/bjshsqlt/p/3311830.html If you would like to after you have updated by list ...

  10. LeetCode: Search in Rotated Sorted Array II 解题报告

    Search in Rotated Sorted Array II Follow up for "LeetCode: Search in Rotated Sorted Array 解题报告& ...