对static(静态变量)的举例与理解

Systemverilog 静态变量 (static) 与 动态变量(automatic) 区别 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录静态变量 Static 动态变量 Automatic一、静态变量和动态变量的定义二、使用步骤1.引入库2.读入数据总结 静态变量 Static 动态变量 Automatic 此章节主要包括静态变量与动态变量的区别,两者在verilog与systemverilog的不同,同时举3个实际例子,说明Systemverilog的内嵌初始化 一、静态变量和动态变量的定义 自动变量:也可以动态变量,变量的存储区在需要时 阅读详情

(1)

 #include<stdio.h>

int main(){

long fac(int);

for(int i=1;i<10;i++)

printf("%d!=%ld\n",i,fac(i));

}

long fac(int x){

static long p=1;

return p=p*x;

}

 分析:在主函数中定义i=1,在循环中当i<10时,先输出i!=fac(i),i的值根据上面循环来定,在函数fac(i)中先把i的值带入函数中的x中去,定义了静态函数p=1(p不随函数的循环重新定义),返回p=p*x到fac(i)里面,再进行i++,最后返回循环判断i是否小于10,如果是就继续循环、不是就结束循环。

 

(2)

 #include<stdio.h>

int main(){

long fac(int);

for(int i=1;i<10;i++)

printf("%d!=%ld\n",i,fac(i));

}

long fac(int x) {

long p=1;//或 auto long p=1;

return p=p*x;

}

 分析:在主函数中定义i=1,在循环中当i<10时,先输出i!=fac(i),i的值根据上面循环来定,在函数fac(i)中先把i的值带入函数中的x中去,定义了长整型p=1(p随函数的循环重新定义),返回p=p*x到fac(i)里面,再进行i++,最后返回循环判断i是否小于10,如果是就继续循环、不是就结束循环。

(3)

#include<stdio.h>

long p=1;

int main(){

long fac(int);

for(int i=1;i<10;i++)

printf("%d!=%ld\n",i,fac(i));

}

long fac(int x) {

return p=p*x;

}

分析:这次p定义在了最开始既不在主函数也不在子函数中,因此p的值会随着子函数而变动,在主函数中定义了i=1,在循环中当i<10时,先输出i!=fac(i),i的值根据上面循环来看,在函数fac(i)中先把i的值带入函数中的x中去,返回p=p*x到fac(i)里面,再进行i++,最后返回循环判断i是否小于10,如果是就继续循环、不是就结束循环。 

static静态变量 我在这里用自己的理解解释一下,因为静态变量是属性类的并不是某个对象的,所以它不能访问非静态的变量和方法,因为它的创建是比较对象还要早的,那静态方法中没有this是因为this是谁调用这个方法那个对象就把地址值给this,而静态方法的 直接通过类调用的,没有对象所以就没有this。它优先于对象存在,所以,可以被所有对象共享。执行完show方法,show方法出栈,然后在new了一个Student,也是在堆里面开辟了一个空间并给了一个地址值,然后把地址值给s2,然后变量初始化,但是这里没有给里面的赋值。 阅读详情

相关推荐

基于E310的纯逻辑代码实现AD9361射频收发

基于微相科技的E310平台实现AD9361的射频收发功能。采用纯逻辑控制的方式,不需要PS参与。实现了用VIO控制收发使能,发射功率,收发频率,数据接口时序控制,接收增益,BIST测试等功能。

xiaomingzi55的博客 2331

变量属性(auto、register、static、extern)

1 C语言的变量属性 C语言中的变量可以有自己的属性。 在定义变量的时候可以加上“属性”关键字。 “属性”关键字指变量的特有意义。 语法: property type var_name; 示例:int main() { auto char i; register int j; static long k; extern double a; return 0;

一万HOURS的知识库 872

【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】

在现代半导体设计中,DFT(Design for Test)技术的重要性不言而喻。它确保了芯片在制造完成后能够进行高效和可靠的测试。DFT设计规则检查(DRC)作为DFT流程中的一个关键环节,通过一系列自动化工具检测设计中的潜在问题,从而保证设计的可测试性和整体质量。在本文中,我们将详细探讨DFT DRC的概念、重要性、检查流程以及具体的规则和应用。Tessent是业界领先的DFT解决方案之一,其DRC工具通过一系列自动化检查,确保设计符合DFT要求。

CodingCos的博客 4168

C语言练习实例41-static定义静态变量

题目:学习static定义静态变量的用法。 程序分析:无。 #include<stdio.h> int main() { void fun(); for(int i=0;i<3;i++) fun(); return 0; } void fun() { int i=0; static int static_i=0; printf("i=%d\n",i); printf("static_i=%d\n",static_

m0_52892985的博客 1231

如何设计一个低代码平台

近些年来,低代码发展火热,各种低代码平台如雨后春笋纷纷崛起,这些平台各定位不同,优劣不同,用户的选择空间很大。那么,如果用户想从零开始设计一个低代码平台,该如何做呢?

Jarod_Chou的博客 8258

实测对比:DINOv2、CLIP、ResNet在图像相似度任务上谁更强?(含Python代码与避坑指南)

本文通过实测对比DINOv2、CLIP和ResNet在图像相似度任务中的表现,提供Python代码实现与避坑指南。实验结果显示,DINOv2在精度上表现最佳,CLIP在多模态场景中优势明显,而ResNet则在计算效率上更优。文章还针对不同业务场景给出了具体选型建议,帮助开发者在图像搜索和版权检测等项目中做出更明智的技术决策。

weixin_30588381的博客 286

实验六 函数

实验六 函数

m0_74891783的博客 464

第五天 Labview数据记录(5.4 EXCEL文件读写)

Excel 文件读写在数据处理、自动化办公、数据分析等领域具有重要的意义。以下是 Excel 文件读写的主要应用场景和意义:1. 数据管理和整理;2. 自动化办公;3. 数据分析和可视化;4. 系统集成;5. 报表生成;6. 教育和培训;7. 实际应用场景。Excel 文件读写的意义在于提高数据处理的效率、减少人工操作、支持自动化办公、促进数据分析和可视化,以及实现系统之间的数据交互。无论是企业、组织还是个人,都可以通过 Excel 文件读写实现数据的高效管理和利用。

weixin_38637405的博客 1263

ExcelVBA 之Static 变量

静态变量(static) 除了范围之外,变量还有存活期,变量的存活期决定了该变量能保存它的值有多久。一旦该工程打开,模块级别和工程级别的变量就会保留它们的值。然而,如果程序的逻辑需要,VB能够重新初始化这些变量。使用Dim语句声明的当地变量当过程结束时就会丢失值,当地变量的存活期是随着过程的运行的,并且它们在程序每次运行的时候可以被重新初始化。VB允许你通过改变声明方式延长当地变量的存活期。 用Static关键字声明的变量是特殊的当地变量,静态变量在过程级别声明。和那些用关键字Dim声明的当地变量相反.

soga235的博客 5589

YOLOv12改进策略【独家融合改进】| MobileNetV4+BiFPN,轻松实现降参涨点,适用专栏内所有的骨干替换

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 979

ros入门(八)---TF坐标转换

TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换。

weixin_51157015的博客 3388

c语言static的用法_吐血整理:C语言中的16个关键字合辑2.0!

昨天跟大家分享过1.0的版本~今天C语言里面常用的16个关键字2.0版本来了!!!通通给你们整理出来了~赶紧拿小本本记下来~!下次发布剩下的~量不在多在于精,吃透少的比一下子吃下去更有效喔~!1、int [ˈɪnt]含义及用法:Integer的缩写。声明量的类型。int为整数型。注意在16位和32位系统中它的范围是不用的。16位中占用2个字节;32位中占用4个字节。还可以显式的声明为无符号或有符号...

weixin_42528191的博客 577

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

php 使用static变量,php的static变量的介绍

这篇文章主要介绍了关于php的static变量的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下1 函数内 static 变量只作用在该函数内部,每次调用后,static变量的值会在上一次调用的基础上更改。而定义时,如果赋予了初值,那么这条语句只会执行一次例如: 无论调用多少次getdata() 函数 static $c2 = 0;这条语句只会在最初执行一次function ge...

weixin_39851457的博客 126

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深入理解static关键字

提到static关键字,相信大家都不陌生,这是相对比较难以理解的一个关键字,相信各位也都能深深感受的到!本篇文章将好好总结一下static这个关键字。 文章目录1、static存在的主要意义2、static的独特之处3、静态变量和实例变量的概念4、静态变量和实例变量【重点常用】5、static静态方法6、static代码块7、static应用场景 1、static存在的主要意义 static的主要...

宜春 8万+

静态变量static的理解

static static是C语言关键字之一。 static 数据类型用来给变量创建永久存储空间。静态变量在函数间调用时保持他们的值不变。 它的语法结构为: static c_type data_name; 其中,c_type 为基础的数据类型,data_name是变量名。 生存期 生存期的概念是在程序执行过程中体现的。程序开始执行后,对所需要的变量申请空间,直至这个变量被销毁。这段时间便是一个变...

weixin_45312883的博客 6905

static静态变量的理解

static静态变量的理解 静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存

linjcai的博客 8891

static--静态变量与普通变量的区别

静态变量与普通变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,...

qq_23018459的博客 5万+

C语言编程>第四周 ① 学习static定义静态变量的用法。

例题:学习static定义静态变量的用法。 代码如下: #include"stdio.h" void varfunc() { int var=0;//定义一个变量var static int static_var=0;//定义一个变量static_var printf("var =%d \n",var); printf("static var =%d \n",static_var); printf("\n"); var++; static_var++; } void main() { int

朽木自雕i的博客 3841

Java面试-static 关键字详解:静态变量、方法、代码块

static成员是类级别的,所有实例共享同一份数据或行为。场景推荐使用 static原因工具类方法✅无需实例化,直接调用全局配置、常量✅共享,节省内存计数器、ID生成器✅所有实例共享状态单例模式✅用静态变量保存唯一实例内部类不依赖外部类✅用静态内部类多线程共享数据⚠️需配合同步机制保存大量数据的缓存❌有内存泄漏风险与对象状态相关的字段❌应为实例变量工具用 static,配置用 static,计数用 static,但别滥用,小心内存和线程安全!

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

static关键字,静态变量,实例变量

静态变量:属于类本身,所有实例共享一份数据,生命周期与类的加载和卸载相关。实例变量:属于对象,每个对象都有自己独立的副本,生命周期与对象的创建和销毁相关。

weixin_57722696的博客 1064

static静态变量的作用

Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。此例中,a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。E.函数中必须要使用static变量情况:比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。

weixin_45021744的博客 6611

C语言中static静态变量的理解及相关函数实例

C语言中static静态变量的理解及相关函数实例最近在学习c语言statci时遇到了一些问题,现在贴一个代码块实例加深自己的理解 最近在学习c语言statci时遇到了一些问题,现在贴一个代码块实例加深自己的理解 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片. #include <stdio.h> int get_value (void) { static int flag =0; flag++; return flag; } in

weixin_42227233的博客 873

【Java】static —— 静态变量

在以后当中,以后有哪些属性可以用static来修饰呢?共享。只要是所有对象都共享的,就必须要用static去修饰。案例:在Student中有以下五个属性。有哪些属性可以被static修饰呢?是否能被static共享。但是这个共享不是绝对的,我们要看具体的业务场景。1、name如果说name用static去修饰了,就表示说有的学生都共享同一个姓名,这种情况可能性非常少,因此这个name我们不会用static去修饰。2、age如果说age用static。

qq_39921135的博客 2106

JAVA静态变量

1.Java 中的 static 使用之静态变量 Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~ 使用 static 可以修饰变量、方法和代码块。 本小节,我们先认识一下静态变量。 例如,我们在类中定义了一个 静态变量 h...

qq_34178628的博客 1万+
下一篇: 实验六(函数) 2.编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算Cnm 的值(要求分别用递归和非递归的方法编写函数 fac)。
汽水爆炸
博客等级 码龄4年 1903粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值