变量类型总结
2019-04-03 11:27
32 查看
内存存储区分为:程序区,静态存储区,动态存储区
静态存储区主要存储:全局变量和静态变量
动态存储区主要存储:1.形参。2.局部变量。3.保护现场和返回地址。
static静态局部变量,是在编译时赋初值,如果不指定初值则为0,而自动变量(局部变量)不赋初值为不确定的数。
static静态外部变量,定义在全局变量位置,特点是只能本文件使用,其他文件不能extern。
总结:
-
作用域
全局变量 外部变量(作用在当前位置以下的函数,允许其他文件引用) - 静态外部变量(作用在当前位置以下的函数,只能本文件引用)
-
自动变量(只作用在本函数,函数创建时赋值,函数结束值消失)
生命周期和存储位置分类
-
动态变量(调用函数时临时分配存储空间)
自动变量
-
静态局部变量(函数内有效)
注意编译时赋初值,是指编译时计划好了变量内存分配方案,而不是将变量存储在内存当中,编译只是起到检查语法错误等编译错误的过程。
顺便总结一下其他知识点:
内部函数是只能被本文件调用的函数,用static修饰。
#include “在用户目录查找” <在系统目录下查找>
数据类型及存储空间
数据类型 | 16位 | 32位 | 64位 |
---|---|---|---|
char | 1 | 1 | 1 |
short | 2 | 2 | 2 |
int | 2 | 4 | 4 |
unsigned int | 2 | 4 | 4 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
long | 4 | 4 | 8 |
unsigned long | 4 | 4 | 8 |
long long | 8 | 8 | 8 |
*指针 | 2 | 4 | 8 |
struct所占的存储空间:
总体上遵循两个原则:
(1)整体空间是占用空间最大的成员(的类型)所占字节数的整数倍。
(2)数据对齐原则—内存按结构体成员的先后顺序排列,当排到该成员时,其前面已摆放的空间大小必须是该成员类型大小的整数倍,如果不够则补齐,依次向后类推。
struct A { char a; double b; int c; char d; };//占24字节。1+7(第二个原则)+8+4+1+3(第一个原则)
相关文章推荐
- 日志总结-java变量类型
- python数据类型和变量的总结
- C语言学习总结 一 关于变量类型
- 【知识整理】javascript基础语法总结(1)——变量和数据类型
- 黑马程序员之ios学习总结——06 C语言的变量类型和结构体
- python变量数据类型总结
- java vector类型变量总结
- ARM体系中C语言变量类型总结
- java的数据类型、变量类型笔记总结
- 引用类型用法总结。class作为成员变量、interface作为成员变量、interface作为方法参数和返回值类型
- JAVASE总结--02(注释、标识符、数据类型、源码、反码、补码、浮点数为什么那么能装、变量、类型的转换)
- JS判断变量类型的方法总结
- JS中变量类型及运算的一些知识点总结
- Java变量与数据类型、数据运算中易混知识点总结
- C++ Primer学习总结 第1-2章 变量和基本类型
- PHP JavaScript横向总结、对比(1.变量,数据类型)
- C++关于变量数据类型的总结
- 总结JS中所有变量的类型和true/false
- PHP 判断变量的类型总结
- C++知识总结(1)--变量和基本类型