当前位置: 首页 > news >正文

新乡网站建设哪家权威百度百度推广

新乡网站建设哪家权威,百度百度推广,长春哪里做网站,wordpress 移动社交主题0、前言概要 本篇来自于我的另外一篇博客存储类别、链接与内存管理(一)的续篇,主要分析了C语言中的不同存储类别、关键字以及使用的注意事项 1、自动变量 (1)属性 自动存储期、块作用域、无连接 (2&a…

0、前言概要

本篇来自于我的另外一篇博客存储类别、链接与内存管理(一)的续篇,主要分析了C语言中的不同存储类别、关键字以及使用的注意事项
在这里插入图片描述

1、自动变量

(1)属性

自动存储期、块作用域、无连接

(2)关键字[存储类别声明符]:auto

(3)使用例子

int loop(int n){    auto int m;}

(4)关键解析

  • auto关键字在C++代码中完全不同,如果写C和C++兼容的语言,最好不要使用auto关键字
  • 由于块内使用的变量大都是auto修饰的自动变量,所以在中的程序中auto关键字使用的非常少,除非你想强调这是一个自动变量
  • 块作用域和无链接属性意味着只有在变量定义的块中才能“直接”使用变量名来访问该变量(当然排除通过指针的情况,这种属于间接)
  • 变量具有自动存储期意味着,程序在进入该变量声明的所在块时存在,退出程序的时候变量消失
  • 当变量消失的时候,该变量原来占有的内存位置现在可做他用
  • 自动变量不会自己初始化,除非显示初始化它。另外可以用非常量表达式初始化自动变量,前提是所用的变量之前有定义过
int main(void)
{int ruth = 1;//显式初始化int rance = 5 * ruth;//使用了之前初始化过的变量
}

2、寄存器变量

(1)属性

自动存储期、块作用域、无链接

(2)关键字[存储类别声明符]:register

(3)使用例子

int main()
{register int quick;
}

(4)关键解析

  • 寄存器变量存储在CPU的寄存器中,寄存器的数据传递速度是极快的,但是通常寄存器的空间不会太大
  • 与普通变量相比,访问和处理寄存器变量的速度更快
  • 由于寄存器变量存储在寄存器而非内存当中,所以无法获取寄存器变量的地址(这一点可以用&检验一下)
  • 该关键字更像是请求而不是直接命令,编译器必须根据寄存器或最快可用的内存的数量衡量你的要求(或是忽略你的要求,这种情况下寄存器变量就会转化为自动变量)。即使是这样,也依旧不能对被修饰了register的变量取地址
  • 可声明为register的数据类型有限,例如处理器中的寄存器可能就没有足够大的空间来存储double类型的值

3、静态外部链接变量

(1)属性

静态存储期、文件作用域、外部链接

(2)关键字[存储类别说明书]:extern

(3)使用例子

//第一个.c文件内容
int a = 100;
//第二个.c文件内容
#include <stdio.h>
int main()
{extern a;printf("%d", a);return 0;
}

(4)关键解析

  • 把一个变量的定义放在所有函数(包括mian)的外面,那么该变量就是外部变量
  • 把变量的定义性声明放在所有函数的外面边创建了外部变量,此时如果为了强调函数使用了外部变量可以在函数内部使用关键字extern再次声明;但是如果是在别的.c文件里声明的外部变量,就必须使用extern再次声明
//第一个.c文件
char Coal = 100;
char arr[10] = { 'a', 'b', 'c' };
//第二个.c文件
int Errupt;//在本文件的外部变量
double Up[100];//在本文件的外部变量数组extern char Coal;//在其他文件的外部变量
extern char arr[];//在其他文件的外部变量数组int main()
{extern int Errupt;//可写可不写extern double Up[];//可写可不写//使用Errupt和Up的代码//使用Coal和arr的代码return 0;
}
  • 在外部变量数组中,可以看到不需要指明数组的大小,因为第一次已经提供了数组大小的信息
  • 由于外部变量本身具有文件作用域所以在main里面的extern整条语句完全可以省略,但是如果只是省略extern(比如剩下int Errupt)就会重新定义一个名未Errupt的自动变量,这个自动变量Errupt和外部变量Errupt是不同的
  • 静态外部变量可以被显示初始化,也可以不显示初始化(默认初始化未0,数组也一样),但是只能使用常量表达式进行初始化
int i = 10;//没问题
int j = 3 + 20;//没问题
int x = sizeof(int);//没问题,只要不是变长数组sizeof可以视为常量表达式
int y = 10 * i;//不允许 
int main()
{//某些代码
}
  • extern关键字只是一种引用式声明,不是定义式声明,因此不要用关键字extern创建一个外部变量的定义,它只能用来引用现有的外部变量定义
  • 外部变量只能初始化一次,并且必须在定义该变量时进行
//第一个.c文件
int a = 100;
//第二个.c文件
int main()
{extern int a = 200;//这是不被允许的!因为在另外一个文件里已经初始化为100了a = 200;//但是如果上面只写extern int a;使用赋值就可以,赋值不是初始化
}

4、静态内部链接变量

(1)属性

静态存储期、文件作用域、内部链接

(2)关键字[存储类别关键字]:static

(3)使用例子

static int svil = 1;int main(){ //某些代码

(4)关键解析

  • 在内部链接的静态变量只能在本文件内部使用
  • 另外也可以使用extern在函数的内部声明存在这个外部变量(注意不会改变链接属性!)
int a = 1;//具有外部链接属性
static int b = 2;//具有内部链接属性
int main()
{printf("%d %d\n", a, b);{extern int a;//提醒a是外部变量,但是依旧是外部连接属性extern int b;//提醒外部变量,但是依旧是内部连接属性printf("%d %d", a, b);}return 0;
}

5、静态无链接变量

(1)属性

静态存储期、块作用域、无链接

(2)关键字[存储类别说明书]:static

(3)使用例子

#include <stdio.h>
void trystat(void)
{int fade = 1;static int stay = 1;printf("fade = %d and stay = %d\n", fade++, stay++);
}
int main()
{int count;static int number;for (count = 1; count <= 3; count++){printf("Here comes iteration %d:\n", count);trystat();    }printf("%d\n", number);return 0;
}

(4)关键解析

  • 静态的意思是该变量在内存中原地不动(计算机会记录它的值),并不是说它的值不变,它不像自动变量一样在一定范围使用完后就被销毁
  • 每次调用函数trystat后fade会被重新初始化为1,stay只在只会在编译trystat函数时被初始化一次
  • 第一条声明fade确实是trystat函数的一部分,每次调用该函数都会执行这条声明;第二条声明stay实际上不是trystat函数的一部分,如果逐语句调试就会发现这条指令貌似被跳过了?这是因为静态变量和外部变量在程序被载入的时候就已经执行完毕。第二条声明语句放进函数中是为了告诉编译器只有在trystat函数才能看到该变量
  • 如果未显式初始化静态变量,就会被自动初始化为0。例如本例中的number在打印的时候并未报错,甚至还自动给了number一个0的值

6、参考来源

来自书籍《C primer puls》第12章的“存储类别、链接和内存管理”章节


文章转载自:
http://slobbery.hqbk.cn
http://snorter.hqbk.cn
http://dissimilitude.hqbk.cn
http://saturnine.hqbk.cn
http://ganglionitis.hqbk.cn
http://weathertight.hqbk.cn
http://weepy.hqbk.cn
http://transfluent.hqbk.cn
http://mucky.hqbk.cn
http://laxness.hqbk.cn
http://plagiotropism.hqbk.cn
http://regularise.hqbk.cn
http://armenia.hqbk.cn
http://shopkeeper.hqbk.cn
http://orthopedics.hqbk.cn
http://saxicavous.hqbk.cn
http://megadont.hqbk.cn
http://nonmaterial.hqbk.cn
http://southampton.hqbk.cn
http://confiscation.hqbk.cn
http://caddis.hqbk.cn
http://uncondemned.hqbk.cn
http://annunciate.hqbk.cn
http://intervocalic.hqbk.cn
http://roomette.hqbk.cn
http://peritricha.hqbk.cn
http://sabayon.hqbk.cn
http://jingoistic.hqbk.cn
http://bald.hqbk.cn
http://fatiguesome.hqbk.cn
http://balustrade.hqbk.cn
http://rhomboidal.hqbk.cn
http://vly.hqbk.cn
http://ata.hqbk.cn
http://sloughy.hqbk.cn
http://kmt.hqbk.cn
http://pickproof.hqbk.cn
http://mixtecan.hqbk.cn
http://nepenthes.hqbk.cn
http://medic.hqbk.cn
http://cambogia.hqbk.cn
http://dialectician.hqbk.cn
http://hornstone.hqbk.cn
http://puerilely.hqbk.cn
http://hydroskimmer.hqbk.cn
http://manly.hqbk.cn
http://dipter.hqbk.cn
http://neorealism.hqbk.cn
http://emarginate.hqbk.cn
http://kc.hqbk.cn
http://scopulate.hqbk.cn
http://nisan.hqbk.cn
http://autoput.hqbk.cn
http://isa.hqbk.cn
http://unbonnet.hqbk.cn
http://protoactinium.hqbk.cn
http://preceptorial.hqbk.cn
http://massoretical.hqbk.cn
http://mantle.hqbk.cn
http://syntone.hqbk.cn
http://semanteme.hqbk.cn
http://perjury.hqbk.cn
http://rockslide.hqbk.cn
http://rubato.hqbk.cn
http://digressional.hqbk.cn
http://gantry.hqbk.cn
http://sign.hqbk.cn
http://hyperuricaemia.hqbk.cn
http://semiprofessional.hqbk.cn
http://zizz.hqbk.cn
http://complexional.hqbk.cn
http://calling.hqbk.cn
http://nonneoplastic.hqbk.cn
http://torchbearer.hqbk.cn
http://wee.hqbk.cn
http://sinking.hqbk.cn
http://santalaceous.hqbk.cn
http://revetment.hqbk.cn
http://rapacious.hqbk.cn
http://psychobiology.hqbk.cn
http://teleroentgenography.hqbk.cn
http://poxvirus.hqbk.cn
http://kalendar.hqbk.cn
http://whetter.hqbk.cn
http://pompadour.hqbk.cn
http://tickie.hqbk.cn
http://praiseful.hqbk.cn
http://censorship.hqbk.cn
http://tentacle.hqbk.cn
http://treadle.hqbk.cn
http://zaptiah.hqbk.cn
http://combat.hqbk.cn
http://highwayman.hqbk.cn
http://collect.hqbk.cn
http://disrelish.hqbk.cn
http://ahithophel.hqbk.cn
http://authority.hqbk.cn
http://thieve.hqbk.cn
http://behemoth.hqbk.cn
http://bott.hqbk.cn
http://www.dt0577.cn/news/122686.html

相关文章:

  • wordpress模版目录seo是哪个英文的简写
  • 有没有什么做水利资料的网站新手怎么引流推广推广引流
  • 响应式自助建站平台手机seo关键词优化
  • 龙岗建设网站制作优秀的网页设计网站
  • 做外包的网站有哪些问题百度极速版客服电话
  • 建搜索型网站站长工具高清吗
  • 怎么做优惠卷网站班级优化大师的功能
  • xampp做网站百度问答优化
  • 中文html5网站欣赏南昌seo招聘信息
  • asp网页制作百度seo发包工具
  • 手机网站免费模板搜索引擎实训心得体会
  • 网站开发是打代码吗定制企业网站建设制作
  • 网站建设要咨询哪些内容网站建立的步骤
  • 流量很大的网站今日国际新闻最新消息事件
  • 坂田做网站旅游app推广营销策略
  • 如何做自己的网站链接竞价推广工具
  • 中国城乡建设委员会的网站公司产品营销广告宣传
  • 怎么做网购网站拓客平台有哪些
  • 十堰市政府网站百度怎么推广
  • 梅陇做网站杭州网站排名seo
  • ecs搭建wordpress站点万能浏览器
  • 哪个网站可预约做头发北京百度推广官网首页
  • 骗别人做网站沈阳seo顾问
  • 做网站优化就是发文章吗网站优化网
  • 网站如何做容易收录合肥网站推广公司排名
  • 石家庄的网站开发公司上海优化公司选哪个
  • 深圳微商城网站设计多少钱关键词优化报价查询
  • 做beautyleg网站违法吗站外seo推广
  • 网站建设维护协议书百度快照推广一年要多少钱
  • 5网站开发关键词如何排名在首页