博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据类型
阅读量:5263 次
发布时间:2019-06-14

本文共 1459 字,大约阅读时间需要 4 分钟。

数据类型:内存大小的别名

变量本质:一段连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间

typedef:为数据类型取别名:(而不是创造了新的数据类型)

typedef  unsigned char  BYTE;

typedef  int  int32;

typedef  struct students

{

  int a;

  char b;

  int32 c;

}stud;

struct students xiaoming;==>stud xiaoming;

——auto,static,register分析:

c语言中的变量可以带有自己的“属性”,这就要用到属性关键字

auto即是C语言局部变量的默认属性

static指明变量的“静态”属性,同时具有“作用域限定符”的含义:

static修饰的局部变量存储在程序的静态区;static修饰的全局变量作用域只是声明的文件中,static修饰的函数作用域只是声明的文件中。

//*******test1.c********static  int test1_g =100;  //将全局变量声明为static,表示该变量的作用域仅仅局限于当前文件 int test1_g_func() //定义一个函数返回上述全局变量的值 { return test1_g; }
1 //*******test2.c********2 extern  int test1_g_func();  //将另一个文件中的函数在此文件声明 3 4 int main()5 {6   printf("%d\n",test1_g_func()); //通过函数访问另一文件中的static属性的全局变量7   return 0;8 }

static修饰的局部变量,在程序静态数据区中分配空间,并且只能被赋值一次,生命周期是全局的,整个程序的执行完之后才撤销空间。

1 //*******test3.c******** 2 int fun1() 3 { 4   static int abc=1; 5   for(int i=0;i<5;i++) 6     abc++; 7   return abc;     8 } 9 int fun2()10 {11   int abc=1;12   for(int i=0;i<5;i++)13     abc++;14   return abc;    15 }16 17 int main()18 {19   fun1();20   printf("%d\n",abc); //输出:2  1++;1++;1++;1++;1++;221   fun2();22   printf("%d\n",abc); //输出:6  1++;2++;3++;4++;5++;623   return 0;24 }

register指明向寄存器中申请空间,但不一定成功。register变量的值必须是cpu寄存器可以接受的值,不能“&”取地址,取地址,取的是内存的地址,这里的空间不在内存中,所以也就不能取地址运算。不能将全局变量声明为register属性,全局变量是程序全局静态区中分配空间的。register属性只能修饰局部变量,并且还不一定成功,但是一旦成功,访问速度很快,实时性要求高的程序中,普遍采用。

 

转载于:https://www.cnblogs.com/data1213/p/4819298.html

你可能感兴趣的文章
Bootstrap基础
查看>>
Javascript: 从prototype漫谈到继承(1)
查看>>
POJ 3974 Palindrome | 马拉车模板
查看>>
oracle表关联update和表建立索引
查看>>
JVM运行内存分类
查看>>
【学习】博弈相关:Nim
查看>>
BZOJ4552 HEOI/TJOI2016 排序 线段树、二分答案
查看>>
13. 用Roberts、Sobel、Prewitt和Laplace算子对一幅灰度图像进行边缘检测。观察异同。...
查看>>
winform采用POST上传指定文件,并获取返回值
查看>>
一、Qt Creator的安装和hello world程序的编写
查看>>
C/C++ 关于大小端模式
查看>>
VueJs2.0建议学习路线
查看>>
An Algorithm
查看>>
导出Excel的几种方法
查看>>
赋值表达式也有值
查看>>
2013年下半年软件评測师(下午)试题分析与解答
查看>>
第一个项目--用bootstrap实现美工设计的首页
查看>>
线程概述
查看>>
struts的增删改查
查看>>
通过名称找到控件(VB.NET)
查看>>