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

开网店软件整站排名优化品牌

开网店软件,整站排名优化品牌,应届毕业生招聘官网,wordpress怎么添加二级链接目录 前言 一、static是什么? 二、什么时候会用到static 三、static特征介绍 1、修饰局部变量 2、修饰全局变量 3、修饰函数 四、补充 总结 一、static是什么? static 是 C/C 中很常用的修饰符,它被用来控制变量的存储方式和可见性。 二、什…

目录

前言

一、static是什么?

二、什么时候会用到static

三、static特征介绍

1、修饰局部变量

2、修饰全局变量 

3、修饰函数

四、补充

总结


一、static是什么?

        static 是 C/C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性

二、什么时候会用到static

  • (1)在修饰变量的时候,static 修饰的静态局部变量只执行初始化一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放
  • (2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是 extern 外部声明也不可以。
  • (3)static 修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,都在全局数据区分配内存。初始化的时候自动初始化为 0。
  • (4)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用 static 修饰。
  • (5)考虑到数据安全性(当程序想要使用全局变量的时候应该先考虑使用 static)。

三、static特征介绍

1、修饰局部变量

        在开始认识static之前可以先运行一下下面两个代码结果。

示例一 

#include<stdio.h>
void test()
{int a = 1;a++;printf("%d ", a);
}int main()
{int i = 0;while (i < 10){test();i++;}return 0;
}

示例二 

#include<stdio.h>
void test()
{static int a = 1;a++;printf("%d ", a);
}
int main()
{int i = 0;while (i < 10){test();i++;}return 0;
}

        两者得到的结果是不样的,第一个结果运行出来的是十个2,这是因为每次重复时test()里的a都会被重新创建,接着被销毁,经过a++以后,会输出一个2;而第二个结果在运行的时候在创建完毕以后不会销毁,保留a的值,直到程序销毁。

2、修饰全局变量 

//创建一个新的.c文件
//设置全局变量
int g_val1 = 2023;
static int g_val2 = 2022;
#include<stdio.h>
#include "add.h"
extern int  g_val1;
extern int g_val2;
int main()
{printf("%d\n", g_val1);//g_val1:2023,//如果输出的是 g_val2:错误return 0;
}
g_ val1 成功输出
g_val2 输出时报错

        全局变量是具有外部链接属性的,所以在输出g_val1 的时候结果会输出2023

        这个时候我们给g_val2加上static,这个时候就会看见编译器报错。这是为什么呢?

        static 修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性。其他源文件(.c)就不能再使用到这个全局变量了。

3、修饰函数

//创建一个新的.c文件
int add(int x, int y)
{return x + y;
}
//创建一个新的.c文件
static int Add(int x, int y)
{return x + y;
}
#include<stdio.h>
extern int add(int x, int y);
int main()
{int a = 10;int b = 20;int z = add(a, b);printf("%d\n", z);return 0;
}
引用全局变量
引用 static 的全局变量

        在使用add()函数的时候,会编译成功,并打印出结果30

        在使用Add()函数的时候,编译器就会报错。

        在static修饰函数的时候,也是和修饰全局变量的时候是一样的。

        一个函数本来是具有外部链接属性的,但是被static修饰的时候,就变成了内部链接属性。其他源文件(.c)就无法使用了。 

四、补充

        static会保留当前放入数据的值,直到程序运行结束,也就是说static会改变该变量的使用周期,使其延长到程序结束。普通变量的创建一般是放在上进行的,一旦给普通变量加上static,这个变量就成了静态变量,存放到静态区。以下就是关于栈区静态区的特点。

栈区:存放局部变量

特点:进入它的作用域,创建出它的作用域就销毁了

静态区:静态变量

特点:程序销毁才销毁


五、代码

        因为在测试的过程中发现了一些问题,所以把完整的代码拿出来方便动手实践与测试。小编遇到的问题会以/* */ 的方式注释出来(其实也没有很多处)。

         添加一个名为add.h的头文件。

//设置全局变量
int g_val1 = 2023;
static int g_val2 = 2022;int add(int x, int y)
{return x + y;
}static int Add(int x, int y)
{return x + y;
}
#include<stdio.h>
#include "add.h"/*引用头文件,不然无法使用里面的函数或者全局变量*/
void test1()
{int a = 1;a++;printf("%d ", a);
}void test2()
{static int a = 1;a++;printf("%d ", a);
}extern int g_val1;/*使用extern 需要指定变量类型*/
extern int g_val2;
extern int add(int x, int y);int main()
{//局部变量int i = 0;while (i < 10){test1();i++;}printf("\n");int j = 0;while (j < 10){test2();j++;}//全局变量printf("\n");printf("%d\n", g_val1);//g_val1:2023,g_val2:错误//printf("%d\n", g_val2);//修饰函数int a = 10;int b = 20;int z = add(a, b);//int y = Add(a, b);printf("%d\n", z);//printf("%d\n", y);return 0;
}
http://www.yayakq.cn/news/289076/

相关文章:

  • 苏州建设信息网站网络顾问
  • 网站快速备案通道2016网站设计欣赏
  • 网站视频怎么下载到本地干净简约高端的网站
  • 商城网站开发的任务书wordpress关键词插件
  • wordpress网站不安全自己做网站需要备案么
  • 网站页面设计公司推荐长春网站优化策略
  • 给别人做网站的销售叫什么女的和女的做那个视频网站
  • 中国循环经济网站开发与设计成都 网站建设培训班
  • 我的网站突然打不开了福州直播app开发公司
  • 网站如何做cc防护哪里有放网站的免费空间
  • 做非法网站判刑多少年怎样自建网站
  • 网上商城系统平台官网深圳建站公司优化
  • dw怎么做phpcms网站专业的外贸网站
  • 自适应网站建设用wordpress做微博
  • 网站开发语言包括哪些某服装企业网站建设方案
  • 怎么查找一个网站开发时间南通公司网站模板建站
  • 什么网站做禽苗好的网站做鲜花的网站有哪些
  • 注册一个电商平台需要多少钱seo如何去做优化
  • 关于建设 医院网站的请示wordpress 采集站
  • 东源县住房和城乡建设部网站天猫网站建设的意义
  • 制作音乐网站实验报告国外ui界面设计网站
  • 简述站点推广有哪些方式新闻20条摘抄大全
  • 哈尔滨网站优化大健康网站怎么样做
  • 苏州网站建设服务太原网站制作
  • asp.net网站开发案例网站鼠标特效代码
  • 网页设计美工培训班网站如何优化一个关键词
  • 北京市建设资格注册中心网站做电影网站要怎么样的主机
  • 建设什么网站自己做的网站怎么被搜录
  • 网站对公司有什么好处网站建设多少钱裤
  • 图片网站用什么主机企业网站建立答辩问题