广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >浅析C++中static的一些用法
  • 231
分享到

浅析C++中static的一些用法

static的用法c++static关键字 2022-12-08 20:12:06 231人浏览 独家记忆
摘要

概述 Static,顾名思义是静态、静止的意思。在C语言中static是一个用来修饰变量与函数的关键字,被修饰对象的某些性质将发生根本性的改变,而这些变化从某种意义上又似乎契合了&l

概述

Static,顾名思义是静态、静止的意思。在C语言中static是一个用来修饰变量与函数的关键字,被修饰对象的某些性质将发生根本性的改变,而这些变化从某种意义上又似乎契合了“静态”这一含义。那接下来就详细讲一讲static这个关键字的用法吧。

我们先来思考这样一段代码

#include <stdio.h>
int num(int m)
{
    int k = 0;
    static int n= 3;
    k += 1;
    n += 2;
    return ( m + n + k);
}
int main()
{
    int i;
    int m = 2;
    for (i = 0; i < 5; i++) 
    { 
        printf("%d,", num(m)); 
    } 
} 

A. 6 ,8,10,12,14

B.8,10,12,14,16

C.10,12,14,16,18

D.12,14,16,18,20

相信你们看了这代码心中已经有了自己的答案,我先说一下这道题的答案是 B ,但是如果对static这个关键字不熟悉的朋友会在想,艾这个static是啥来着,它在这里有什么作用?所以在这里就不得不提static的特性了。由此引出static的特性。

在C语言中: static可用来修饰变量和函数: 1. 修饰局部变量-称为静态局部变量(看过上面代码就知道了k,n都是局部变量了吧,其中n就是那个静态局部变量) 2. 修饰全局变量-称为静态全局变量 3. 修饰函数-称为静态函数

static的特性:
  1. static修饰变量
   a. 函数中局部变量(一般将定义在函数中的变量称为局部变量,其只能在函数内部使用):
      声明周期延长:该变量不随函数结束而结束(说到周期这里就提一句变量的周期:一个变量从创建到销毁的那个时间段称为它的周期)

在这里引入生命周期这一名词,它分为局部变量的生命周期和全局变量的生命周期

局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束(可以理解为:在一个函数中定义的变量,从它被创建开始到它出了(销毁)这个函数的时间段就是它存活的生命周期)。 全局变量的生命周期:整个程序的生命周期,它随程序启动而 产生生,随程序结束而消亡,在任何函数中都可以使用。

      初始化:只在第一次调用该函数时进行初始化
      记忆性:后序调用时,该变量使用前一次函数调用完成之后保存的值
      存储位置:不会存储在栈上,放在数据段
   b. 全局变量(定义在全局作用域中的变量,即函数外的变量,称之为全局变量)
     改变该变量的链接属性,让该变量具有文件作用域,即只能在当前文件中使用
   c. 修饰变量时,没有被初始化时会被自动初始化为0
  2. static修饰函数: 改变该函数的链接属性,让该函数具有文件作用域,即只能在当前文件中使用

以上就是对static的一些用法与总结啦,若有裨益,吾之幸也!若是了解了在评论区扣个1吧,谢谢支持。

美好的一天总是那么快就过去,我们不必感叹时间流逝,不必怀恋过去,也不必忧虑将来,我们唯一能掌控的也许只有我们现在能做什么。

到此这篇关于浅析c++中static的一些用法的文章就介绍到这了,更多相关static的用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅析C++中static的一些用法

本文链接: https://www.lsjlt.com/news/174316.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅析C++中static的一些用法
    概述 Static,顾名思义是静态、静止的意思。在C语言中static是一个用来修饰变量与函数的关键字,被修饰对象的某些性质将发生根本性的改变,而这些变化从某种意义上又似乎契合了&l...
    99+
    2022-12-08
    static的用法 c++ static关键字
  • C语言中static的用法有哪些
    在C语言中,static关键字有以下几种用法:1. 在全局变量中使用static:当static关键字用于全局变量时,它的作用是限制...
    99+
    2023-08-08
    C语言 static
  • 浅析UniApp的一些常用写法
    UniApp是一个基于Vue.js的跨平台开发框架,可以开发iOS、Android、H5以及小程序等多个平台的应用程序。而在UniApp的开发中,有一些比较重要的写法需要我们注意和掌握,下面我们一起来详细了解一下。一、框架的结构UniApp...
    99+
    2023-05-14
  • C++static详解,类中的static用法说明
    目录C++static详解,类中static用法static特点:用来控制存储方式和可见性类中的static关键字什么时候用static?为什么要引入static?c++中stati...
    99+
    2022-11-13
  • php类中static与self的使用区别浅析
    使用 self:: 或者 __CLASS__ 对当前类的静态引用,取决于定义当前方法所在的类: 使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可...
    99+
    2022-11-12
  • c语言中static和extern的用法详细解析
    一,static和extern:大工程下我们会碰到很多源文档。文档a.c复制代码 代码如下:static int i; //只在a文档中用int j;  &nbs...
    99+
    2022-11-15
    c语言 extern static
  • 浅析C++中类模板的用法
    目录C++类模板总结C++类模板 C++类模板是一种用于创建通用类的工具,它允许我们定义一个通用类,支持多种类型。 定义类模板 C++中定义类模板的语法如下: template<...
    99+
    2023-05-16
    C++类模板用法 C++类模板使用 C++类模板
  • 浅析C语言中assert的用法
    assert是C语言中的一个宏,用于在程序中检查特定的条件是否为真。当assert条件为假时,程序会中止执行,并打印出错误消息。as...
    99+
    2023-08-11
    C语言
  • C语言浅析函数的用法
    目录问题引入函数C语言中函数的语法形式问题例子函数的调用过程函数声明变量声明数组声明问题引入 有时候,我们经常需要在一个程序中,对一个数组进行 键盘输入,打印数组元素值。 有些代码块...
    99+
    2022-11-13
  • 浅析C# treeview控件的使用方法
    C#中的treeview控件是用来显示层次结构数据的控件。它通常用于显示树形数据结构,比如文件目录结构、组织结构等。使用treevi...
    99+
    2023-09-22
    C#
  • java中static的基本用法有哪些
    在Java中,static关键字有以下几个基本用法:1. 静态变量:使用static修饰的变量称为静态变量,也叫类变量。静态变量在程...
    99+
    2023-09-04
    java static
  • 浅谈C#中[]的几种用法
    目录一、导入外部DLL函数二、结构体时表明属性一、导入外部DLL函数 如[DllImport(“kernel32.dll”)]这叫引入kernel32.dll...
    99+
    2023-01-28
    C# []用法 C# []
  • C语言中static的使用方法实例详解
    目录前言一、static修饰变量1.修饰局部变量2.修饰全局变量二、static修饰函数补充:static的好处是什么?总结前言 static关键字不仅可以用来修饰变量,还可以用来修...
    99+
    2022-11-13
    c语言static的用法 static作用 c语言 c语言static关键字的用法
  • C#中const,readonly和static关键字的用法介绍
    如果有一个值不太会变化,我们经常使用const和readonly,这2者有何不同呢?有时候,我们也会在readonly之前加上关键字static,这又意味着什么呢? const co...
    99+
    2022-11-13
  • 浅析STL中的常用算法
    一、非变异算法 是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。非变异算法具有极为广泛的适用性,基本上可应用与各种容器。 1查找容器元素...
    99+
    2022-11-15
    STL 算法
  • C++中四种对象生存期和作用域以及static的用法总结分析
    一、四种对象生存期和作用域 栈对象隐含调用构造函数(程序中没有显式调用) 堆对象隐含调用构造函数(程序中没有显式调用),要显式释放 全局对象、静态全局对象 全局对象的构造先于mai...
    99+
    2022-11-15
    对象生存期 作用域 static
  • 浅析go语言实现的一些常用功能
    Golang(或也称为Go语言)是Google于2009年推出的一种新型编程语言,因其高效、简单、可靠性强等特点,近年来在IT领域越来越受到注目。本文将介绍Golang的一些基本原理以及如何使用它实现一些常用的功能。一、Golang的基本原...
    99+
    2023-05-14
    go语言 Golang
  • 浅谈C++/C关于#define的那些奇奇怪怪的用法
    目录前言1 缩减代码 2 定义变量3 代替函数 4 函数做不到的功能5 一些有些"邪门"的用法 6 与#define有关联的带&ld...
    99+
    2022-11-13
  • 浅析Java模板方法的一种使用方式
    为什么我会想到使用模板方法呢? 在日常开发中,我们经常需要使用编程式事务来解决一些实在的业务问题。以Hibernate框架为例(其实对于ORM框架来说,都大同小异。我们公司使用的是H...
    99+
    2023-02-23
    Java模板方法使用方式 Java模板方法使用 Java模板方法
  • 浅析golang中JSON的使用方法
    Go是一门功能齐全的编程语言,同时也是一门非常流行的编程语言。它的一个强大之处就是对JSON的处理。JSON是一种轻量级的数据交换格式,非常适合用于Web应用程序中的数据交换。在golang中,处理JSON数据非常简单且高效。让我们来了解一...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作