黑马程序员_iso入门基础学习_C语言day6

变量的类型

作用域来分:

1.局部变量:

1>在函数,代码块中的变量

2>作用域:定义变量那一行开始,直到代码块结束

3>生命周期:从定义开始分配存储空间,到代码块结束,被系统回收


2.全局变量

1>函数外部的变量

2>作用域:定义那一行开始到文件结尾,在该变量下面的所有函数都能够访问

3>生命周期:程序启动就分配空间,直到程序结束

4>默认初始值是0


构造类型:

1.数组:由多个相同的数据类型构成

2.结构体:可以由多个不同类型的数据构成

定义结构体:struct 结构体名{ 属性};//这里定义的结构体名作为类型名,用来定义结构体变量。语法:struct 结构体名 结构体变量名。

如何访问变量的属性:变量名.属性名=XXX;

结构体变量在赋值的时候,只能初始化的时候赋值或者通过变量名.属性名来一一赋值。

在初始化进行赋值的时候,可以通过.属性名来对相应属性赋值,如果不写属性名,那么只能一一对应的赋值。

结构体变量所占的 存储空间就是该结构体属性所占空间的总和,并且是最大属性所占空间的倍数。(补齐算法)

结构体类型中的属性的内存分配是按顺序,从小到大分配的。


为什么可以char *p="abc";不可以int *p={1,2,3}?


3.定义结构体变量:

1>。先定义结构体类型,再用类型名定义变量

2>。定义结构体类型和变量的语句结合成一句

3>。在2的基础上,不写类型名,坏处是不能重用

结构体类型也有作用域。

一个结构体变量可以看成是一个整体,只是结构体变量有多个属性。

在获取地址的时候要在结构体变量名前加上&。与int double char类似。


4.结构体数组:struct 结构体类型名 数组名[]={{},{},{}}


5.指向结构体类型的指针:

struct 结构体类型名 *p=&结构体变量;

访问结构体的某个属性:p->属性 或者 (*p).属性


6.结构体嵌套定义:结构体当中有结构体类型的属性


枚举类型:

enum   类型名 {固定取值}

enum   week  { Monday,thurday,wesday,Saturday,Sunday }

使用场合:当我们的变量需要固定的几个值。



一、基本数据类型

1.int

1> long intlong8个字节  %ld

2> short intshort2个字节 %d %i

3> unsigned intunsigned4个字节 %zd 

4> signed intsignedint4个字节 %d %i


2.float\double

1> float 4个字节 %f

2> double8个字节 %f


3.char

1> 1个字节 %c %d

2> char类型保存在内存中的是它的ASCII

 'A' --> 65


二、构造类型

1.数组

1> 只能由同一种类型的数据组成

2> 定义:数据类型 数组名[元素个数];


2.结构体

1> 可以由不同类型的数据组成

2> 先定义类型,再利用类型定义变量


三、指针类型

1.变量的定义

int *p;


2.间接操作变量的值

int a = 10;

p = &a;

*p = 20;


四、枚举类型

使用场合:当一个变量只允许有几个固定取值时



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值