[基础知识点总结]

一、关键字static的作用

static关键字在C/C++中主要用于控制变量的存储方式可见性

1、在C语言中,static关键字有三个主要作用:

(1)当用于函数内部的局部变量时,static使该变量保持其值不变,即该变量在函数调用过程中的值不丢失,这种变量被称为静态局部变量,只在第一次调用时初始化,普通局部变量在函数调用结束后会销毁,而静态局部变量则存储在静态区,具有与程序相同的生命周期

(2)当用于模块内但函数体外时,static使得该变量只能被同一模块内所用函数访问,但不能被模块外其它函数访问。相当于一个本地的全局变量

(3)当用于修饰函数时,static函数仅能被声明它的模块内其他函数调用,即这个函数被限制在声明它的模块的本地范围内使用

2、在C++中,static关键字的作用有所扩展:

(1)当用于修饰成员变量时,static使该成员成为类的全局变量,被类的所有对象共享。这意味着,无论创建多少对象,都只有一个这样的变量实例。因此,static成员必须在类外进行初始化,而不能在构造函数内进行初始化。

(2)当用于修饰成员函数时,static表示这个成员函数没有this指针,因此它只能访问static成员变量。静态成员函数可以独立于任何对象实例访问,即无需创建对象即可使用

(3)最重要的特性是隐藏,即当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,可能引发命名冲突。通过使用static,可以在不同的文件中定义同名函数和变量,而不必担心冲突。

二、extern作用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/763930.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重大丨深中通道今通车!继港珠澳大桥后,三思再度点亮世界工程

6月30日下午3时,国家重大工程深中通道正式通车试运营,向世界再次展示中国智慧和基建实力。已承接过包括港珠澳大桥海底隧道在内2500多条隧道照明工程的上海三思电子工程有限公司,为这座超级工程提供了LED隧道照明、东西人工岛照明及显示、管理…

【力扣】赎金信

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 给你两个字符串…

私有云统一多云管理平台主要服务内容

私有云统一多云管理平台,作为企业IT架构现代化的关键组成部分,旨在为企业提供高效、灵活、安全的云计算资源管理解决方案。这类平台通过整合和优化不同云环境(包括私有云、公有云、混合云)的管理,帮助企业打破云孤岛,实现资源的统…

【MySQL备份】Percona XtraBackup增量备份实战篇

目录 1.前言 2.准备工作 2.1.环境信息 2.2.创建备份目录 2.3.配置/etc/my.cnf文件 2.4.授予root用户BACKUP_ADMIN权限 3.增量备份 3.1.第一步:全量备份 3.2.第二步:增量备份 3.3.第三步:再次增量备份 4.准备备份 4.1.准备全量备…

秋招Java后端开发冲刺——基础篇5(String集合)

一、String String类是Java中字符串操作类,位于java.lang包下String类型对象的底层使用字符数组char[]存储字符串,由final修饰且没有提供公共的修改方法,因此String对象是不可变的。常见方法 方法名作用trim()去掉字符串首尾空字符split(分…

【面试系列】产品经理高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

我在国企当合同工的那段日子

心血来潮 25号考完了,非常不理想,果然700页的东西不是一个月能搞完的。不对,我今儿写日志是为了纪念一下我的第一家公司,咋扯到别的了…言归正传,我在第一家公司待了仨年,可能是年纪到了(26岁咋还不退休啊…

发送微信消息和文件

参考:https://www.bilibili.com/video/BV1S84y1m7xd 安装: pip install PyOfficeRobotimport PyOfficeRobotPyOfficeRobot.chat.send_message(who"文件传输助手", message"你好,我是PyOfficeRobot,有什么可以帮助…

SpringBoot中整合ONLYOFFICE在线编辑

SpringBoot整合OnlyOffice SpringBoot整合OnlyOffice实现在线编辑1. 搭建私有的OnlyOffice的服务2. SpringBoot进行交互2.1 环境2.2 我们的流程2.3 接口规划2.3.1 获取编辑器配置的接口2.3.2 文件下载地址2.3.3 文件下载地址 3. 总结4. 注意4.1 你的项目的地址一定一定要和only…

gcc versions later than 10 are not supported!

如何修改Linux服务器gcc和g版本 查看gcc和g版本 gcc -vg -v修改gcc和g版本 家目录创建./local/bin文件夹 mkdir -p ~/.local/bin把 ~/.local/bin 加到你的 PATH 里 打开~/.bashrc 然后 export PATH~/.local/bin:$PATH后source ~/.bashrc将gcc和g需要的版本加入 ~/.local/bin…

Elasticsearch-Rest-Client

Elasticsearch-Rest-Client&#xff1a;官方RestClient&#xff0c;封装了ES操作&#xff0c;API层次分明&#xff0c;上手简单。 1. 导入依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high…

激光粒度分析仪计量校准规范:确保测量精度的关键

激光粒度分析仪作为现代科研与工业生产中不可或缺的分析工具&#xff0c;广泛应用于陶瓷、土壤、制药、建材、环保等众多领域。 其通过激光散射原理&#xff0c;快速准确地测量颗粒材料的粒度分布&#xff0c;为材料科学研究、产品质量控制及环境保护等提供了强有力的技术支持…

罗德和神牛、西圣无线麦克风哪个好用?罗德、西圣多方位实测对比

随着短视频行业的兴起&#xff0c;越来越多人开始加入自媒体创作的行业中&#xff0c;不过对于短视频而言&#xff0c;光有好的画面是不够的&#xff0c;还需要清晰、干净的声音。而无线领夹麦适用于唱歌、直播、吃播、短视频、访谈等场景使用&#xff0c;而且能够极大的提高声…

微信小程序渲染层与逻辑层交互原理

1. 网页开发与小程序开发有何不同&#xff1f; 2. 小程序运行环境 3. 页面渲染技术选型 1. 纯客户端技术&#xff1b; 2. 纯Web技术&#xff1b; 3. 用客户端原生技术与Web技术结合的混合技术&#xff08;Hybrid&#xff09;&#xff0c;小程序就是使用的这种技术&#xff1…

dledger原理源码分析系列(一)-架构,核心组件和rpc组件

简介 dledger是openmessaging的一个组件&#xff0c; raft算法实现&#xff0c;用于分布式日志&#xff0c;本系列分析dledger如何实现raft概念&#xff0c;以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的架构&#xff0c;核心组件&#xff1b;rpc组…

抠图后怎么跟背景自然融合?分享3款工具

抠图后怎么跟背景自然融合&#xff1f;将抠图后的图片与背景自然融合可以极大地提升图像的整体视觉效果&#xff0c;使我们能够更方便地创造出丰富多彩、独具特色的设计作品。无论是广告海报、产品展示还是社交媒体分享&#xff0c;自然融合的背景都能让抠图元素与周围环境融为…

【Kaggle】Telco Customer Churn 数据编码与模型训练

&#x1f4ac;在上一部分中&#xff0c;我们已经完成了对数据集背景解读、数据预处理与探索性分析。在数据背景解读中&#xff0c;我们介绍了数据集来源、电信用户流失分析的基本业务背景&#xff0c;并详细解释了每个字段的基本含义&#xff1b;在数据预处理过程中&#xff0c…

11集在Docker上编译tensorFlow Lite MCU例子工程-《MCU嵌入式AI开发笔记》

【11集在Docker上编译tensorFlow Lite MCU例子工程-《MCU嵌入式AI开发笔记》】 这一集咱们一步一步的在doc下面编译TensorFlow Lite的例程 https://tensorflow.google.cn/lite/tutorials?hlzh-cn 进入这个例子&#xff1a; https://codelabs.developers.google.cn/codelabs/…

Python学习笔记六

1.实现4*4随机矩阵 #生成一个随机4*4的数组 import numpy as np np.random.seed(1)#固定随机数 每次都是同一个 &#xff08;&#xff09;里面的数字不同 对应的随机数也不同 np.random.rand() anp.random.randint(0,100,16).reshape(4,4)#0~100的随机整数 包含16个元素 pri…

Java学习 (六) 面向对象--this、继承、方法重写、super

一、this 关键字 1、this 演示 vi Person.java public class Person {String name;int age;//显示声明构造器public Person(String s , int i){name s;age i;}public void setAge(int age){age age;}}vi PersonTest.java public class PersonTest {public static void m…