7.27

sizeof

c语言的操作符,用于计算为数据类型分配的内存的大小,以字节为单位

语法格式:

sizeof(数据类型或者变量);返回类型为: size_t

Demo:

#include

int main(void)

{

int myInt = 100;

size_t nSizeIntVar = sizeof(myInt);  //sizeof()很像函数调用,但是一定要记住,sizeof()是运算符

//%lu 表示输出nSizeIntVar这个变量的时候,将其作unsigned

long来解释

printf(“the var myInt’s size is

%lu\n”,nSizeIntVar);

size_t nSizeInt = sizeof(int);

printf(“the Int’s size is

%lu\n”,nSizeInt);

float myFloat = 22.23f;  //在字面常量后面加字母f表示,直接说明它是一个float,如果不加f,小数这样的字面常量属于double类型

printf(“the size of float var is

%lu\n”,sizeof(myFloat));

return 0;

}

数据类型

基本数据类型:

整型

字符型[char](占1个字节)

短整型[short int](占2个字节)

整型[int](占4个字节)

长整型[long int](占8个字节)

都分为有符号(siged)和无符号(unsiged)

整型字面值:

源代码直接书写的整型数值就是整型字面值(字面值就是字面值常量的缩写,其特点是指定了自身的值以后,不允许发生改变)

字面值还可以使用八进制表示(在数值前面以0开头)

还可以使用十六进制表示(在数值前面加0x开头)

枚举类类型(enum)

声明枚举类型的格式:

enum 枚举名{枚举值列表,列表以逗号隔开};

EG:

enum

weekDays{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};

在枚举中应罗列出所有可能值,这些也称为枚举元素。

枚举元素由系统定义一个从10开始的序号,如果程序员不赋值,第二个元素是上一个元素➕1.

定义一个枚举类型变量,可采用下述任一种:

enum weekDays myWorkDay;

enum weekDays {

Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday }

myWorkDay;

enum {

Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday }

myWorkDay;

对于枚举变量myWorkDay,它的值只能是枚举元素的其中一个,不能超出范围

作用:

枚举类型实际上是整型变量,只不过枚举类型是将一类有关联的标识符组合起来,增加程序的可读性和可维护性

浮点型

单精度[float](占4个字节)

双精度[double](占8个字节)

扩展精度[long double](占16个字节)

数组

相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组

数组是用一个单一的变量表示一个变量列表

是在内存中一块连续的存储单元,数据存在于这些单元中

数组的声明格式:

类型说明符  数组名[常量表达式]

EG:

int a[10]

表示数组名为a,有10个元素,并且每个元素的类型都是int型

注意:

常量表达式要有方括号括起来,不能用圆括号

常量表达式表示数组元素的个数,即数组长度,并且数组的第一个元素是从下标0开始的

常量表达式可以是常量也可以是符号常量,不能包含变量

数组名不能与其他变量名相同

允许在同一个类型说明中,说明多个数组和多个变量

使用数组时要注意,一定要小于定义数组的长度,放置数组溢出

数组名代表数组的地址,数组转化为指针用[]

数组在高地址,变量在低地址

数组初始化:

在定义数组时,对数组元素赋值  eg:int

a[10]={0,1,2,3,4,5,6,7,8,9} ;不能:int a[10];

a[10]={….};

可以只给一部分元素赋值  eg:int

a[10]={0,1,2,3,4};表示只给数组的前5个元素赋初值,后5个元素的值系统自动默认为0

在对全部数组元素赋初值时,可以不指定数组长度  eg:int a[5]={0,1,2,3,4};等于int

a[]{0,1,2,3,4};

数组必须先定义,后使用。只能逐个引用数组元素,而不能一次引用整个数组。

数组的引用形式为:数组名[下标](其中下标可以是整型常量,也可以是整型表达式eg:a[0]=a[5]+a[7]+a[2*3])

数组Demo:

int main(void)

{

int i,j;

int a[10];

for(i = 0;i <= 9;i++)  //顺序给数组元素赋初

a[i] = i;

for(j = 0;j <= 9;j++)  //顺序输出数组元素

printf(“%d”,a[i]);

return 0;

}

结构体

结构体是聚合类型,结构也是一值的集合,这些值称为它的成员(member),但是一个结构的各个成员可能具有不同的类型。每个结构成员都有自己的名字,它们是通过名字访问的

结构体的声明和定义形式

struct tag {成员列表}

变量列表(成员列表以分号隔开,变量列表以逗号隔开。tag可以省略

定义结构体

typedef:

EG:

struct

{

int age ;

int workExperience;

double salary;

}manager;

typedef

C语言支持一种叫作typedef的机制,它 允许你为各种数据类型定义新名字

EG:

声明:char

*prtToChar;是指变量prtToChar声明为一个指向字符的指针

对于结构体的声明:

typedef struct employee{

int age;

int workExperience;

double salary;

}employeeType;

后续定义雇员结构类型的时候,就可以直接使用这样的方式employeeType

manager

结构体初始化

EG:

struct

{

int age;

int workExperience;

double salary;

}manager = {20,10,15781.33};

注:只有在初始化的时候才能用{}来赋值

结构成员访问方法

结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数,左操作数是结构变量的名字,右操作数就是需要访问的成员值

派生数据类型:

联合体(union)

当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体

联合体是一个结构;

它的所有成员相对于基地址的偏移量都为0

union中可以定义多个成员,union的大小由最大的成员的大小决定

由于联合体中的所有成员是共享一段内存的,所以所有成员的首地址都是一样的,一次只能使用其中一个成员

对某一个成员赋值,会覆盖其他成员的值

union的存放顺序是所有成员都从低地址开始存放的

Demo:

#include

int main(void)

{

union{

int a;

char b;

double d;

//char arr[100]; 其结果是104

}myUnion;

//union类型的变量,其成员是共享内存,union类型的变量的大小是其成员最大的那个变量空间

printf(“the size of myUnion is

%lu\n”,sizeof(myUnion));

return 0;

}

聚合类型(如数组和结构)

字符串

字符串就是一串零个或多个字节,并且以一个位模式为全0的NUL字节结尾(\0)

字符串以字符常串常量的形式出现或者存储在字符数组中(字符串是以字符数组存放的)

计算机在储存字符串字面常量的时候,会自动在其末尾添加一个结束\0

附加:

getch():该命令可以在运行的时候按任意键退出,如果没有此命令,有时候屏幕闪一下就没了(程序结束就退出) ‘  ’:是字符

“  ”:是字符串

enum

weekDays myWorkDay;

enum

weekDays

{Monday,Tueaday,Wednesday,Thursday,Friday,Saturday,Sunday}myWorkDay;

enmu{

Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}myWorkDay;

C语言之数据类型,C语言之数据类型相关推荐

  1. c语言求两者之间最小数,C语言课件第2章基本数据类型.ppt

    C语言课件第2章基本数据类型 第 2 章 基本数据类型 1.标识符 例2.1 常量和变量的使用. #include "stdio.h" #define WIDTH 80 //定义符 ...

  2. python数据类型-Python语言基本数据类型

    本文主要向大家介绍了Python语言基本数据类型,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. python标准数据类型 有六个标准的数据类型: 1.Number(数字) 2.S ...

  3. 【剑仙教程】易语言的结构体。自定义数据类型。

    1楼. [剑仙教程]易语言的结构体.自定义数据类型. 在易语言中,有基本数据类型,自定义数据类型. 自定义数据类型,在C语言/C++中称为结构体.这是面向对象和类的编程. . . 先上代码.打开易语言 ...

  4. java语言中的数据类型_Java语言中关于数据类型的一些总结

    一.Java语言中有两种数据类型 基本数据类型:即int/char等这样的数值类型,共8种 1.byte byte 数据类型是8位.有符号的,以二进制补码表示的整数 范围是-27--(27-1): b ...

  5. [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...

  6. go 语言系列(二)基本数据类型和操作符

    go 从入门到精通(二)基本数据类型和操作符 一.文件名&关键字&标识符 所有go源码都是以.go结尾 标识符以字母或下划线开头,大小写敏感 下划线_是特殊标识符,用户忽略结果 保留关 ...

  7. 《乐在C语言》一2.2 数据类型

    本节书摘来自异步社区<乐在C语言>一书中的第2章,第2.2节,作者 蔡明志,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.2 数据类型 乐在C语言 定义一个变 ...

  8. 字符串是单一字符的无序组合吗_计算机二级教程 Python语言程序设计 第6章组合数据类型...

    第6章组合数据类型 第六章学习知识导图 考点主要是: 1) 组合数据类型的基本概念 2) 列表类型:定义.索引.切片 3) 列表类型的操作:列表的操作函数.列表的操作方法 4) 字典类型:定义.索引 ...

  9. c语言在一个文件后面添加数据类型,c语言简单入门之简单运行和数据类型

    自学遇到前所未有的阻力了.没办法,只有去学习下底层的知识了.于是就学了下c语言,把过程记录下,方便自己复习之用! 初识c语言,什么也不知道,跟着老师敲代码就是,慢慢体会,这是我学习的笨办法,不会的先不 ...

  10. c语言命名规则_C语言的基本数据类型及变量

    学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 了解C语言程序的基本数据类型及概念的使用方法擦 在C语言编程中,系统定 ...

最新文章

  1. EPSON机器人SPLE+语言_简单实例
  2. 惠普发布软件定义存储 助力提升虚拟化能力
  3. Bag of Words(BOW)模型
  4. 线性表算法题库_数据结构与算法(线性表)练习题
  5. 通过环境变量注入的方式启动SAP Spartacus B2B模块
  6. LeetCode 2181. 合并零之间的节点(链表)
  7. .NET C# 群发 HTML格式 带附件 中文发送者 密送 抄送 的邮件
  8. 会员充值-》解决方案之一
  9. 洛谷 2017.7月赛解题报告
  10. 矩孔菲涅尔衍射 matlab,圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学
  11. 提升交互设计必备的28本好书
  12. WebEx Recorder
  13. 第三方支付接口对接基本流程
  14. MAC装虚拟机显示打不开 /dev/vmmon: 断裂管道 请确保已载入内核模块 ’vmmon’
  15. 「吕本富」交易的四个阶段
  16. python空气质量提醒代码_空气质量指数查询示例代码
  17. 4.分支语句和循环语句
  18. 用C#WebClient+Server酱写一个监听网站通知的功能
  19. 【前端之旅】HTML大总结
  20. 在phpMyAdmin使用用户口令登陆(转)

热门文章

  1. Microsoft Visual Studio Ultimate 2013密钥
  2. IE9下透明度设置无效
  3. 用PhotoSwipe制作相册,手势可放大
  4. 装饰者模式(Decorator pattern)
  5. asp.net中前台javascript与c#函数相互调方法
  6. 分分钟搞定阿里云私有Docke镜像仓库的搭建
  7. centos7 安装VNC Server
  8. CentOS下部署Hadoop高性能集群
  9. 常用 doc bat 命令总结
  10. Excel函数 (使用 「index + match」代替 vlookup进行查询)