首页 > 其他分享 >c语言学习之路--static的用法(笔记)

c语言学习之路--static的用法(笔记)

时间:2023-09-08 21:34:38浏览次数:44  
标签:-- void ++ 用法 int static printf test

1.static修饰局部变量时

可以理解为将局部变量变为全局变量,如图:

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

没有static时结果为

a的值为2
a的值为2
a的值为2
a的值为2
a的值为2

如果有static时,则变为:

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

结果为:

a的值为2
a的值为3
a的值为4
a的值为5
a的值为6

2.static修饰全局变量和函数时则使其周期变短,不能被另一个文件所检测;

以下两个文件:

a.c

int a = 10;

b.c

#include <stdio.h>
int main(void)
{
  extern int a;
  printf("a的值为%d\n",a);
  return 0;
  )

输出结果则为:

a的值为10

若用static修饰的话,则不能成功运行。


标签:--,void,++,用法,int,static,printf,test
From: https://blog.51cto.com/u_16253936/7412908

相关文章

  • exbsgs
    建议看看这篇博客但是可以看看自己的代码,这篇博客里面的Q&A好像有点问题,不一定非要从0开始这篇博客对exbsgs的推导的那个算式的第三排,两遍同时乘以\(\frac{a}{d}\)的逆元,再取个模即可......
  • 安卓代码规范(常见)
    安卓代码开发规范是一组指导原则和标准,旨在帮助开发团队保持一致的代码风格,提高代码的可读性、可维护性和可扩展性。以下是一些常见的安卓代码开发规范:命名规范:使用有意义的变量名、函数名和类名。使用驼峰命名法(CamelCase)。避免使用缩写,除非是广为人知的缩写。示例://......
  • Java学习_004 数据输入:案例2
    需求:三个和尚的身高需要手动输入,请用程序实现这三个和尚的最高身高。importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intheight1=sc.nextInt();intheight2......
  • 闲话9.8
    今天真摆了。昨天晚上打CF给我打虚了,今天状态不行。上午又写了写傻逼期望。下午打了那个傻逼模拟赛。T120分钟切了,T2发现题面太长,跳了。T3搞了半天的输入然后发现\(1e18\)随便跑就走了。T4一眼部分分直接开始打大模拟,过河卒经典了。然后T2又搞了一个小时搞出来了,最......
  • linux开发环境配置
    1.jdk1.81.解压tar-zxvfjdk-8u381-linux-x64.tar.gz-C/usr/local/java2.环境配置##安装vimyum-yinstallvim##配置文件vim/etc/profileexportJAVA_HOME=/usr/local/java/jdk1.8.0_381exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:......
  • PyTorch安装记录
    打开PyTorch官网,选择getstartedhttps://pytorch.org/查看系统的cuda版本nvcc-V若系统安装了cuda,则最后一行会显示cuda版本。如果返回None,则说明没有使用cuda3.选择合适的系统,安装工具以及cuda版本这里没有看到我们需要的11.4的cuda版本,选择installpreviousver......
  • AWS配置一个工具可以连接的kubeconfig
    问题:因为eks的kubeconfig是动态生成User和IAM绑定的,所以工具无法直接连解决方案:终端创建# 创建一个命名空间kubectlcreatensvela-system# 创建一个sa账号kubectlcreatesakubevela-vela-core-nvela-system# 把sa账号(kubevela-vela-core)与cluster-admin这个具有管理员权限......
  • 自学CSday1
    初识c语言1:写c代码时,新建项目(设置好自己代码的存放点);添加源文件c代码中,.c--源文件  .h--头文件(head,就是放在最头部):写c语言时,文件名称命名为test.c2:main--主函数-程序的入口与//不可以没有,在一串代码中有且只有一个3:return0;-返回0(此处0为整型)4:int-整型intmain中,main前面的int......
  • MySQL查询命令练习(一)
    如果需要详细的命令总结在我--软件测试--个人分类里,不想翻阅的话点这个连接也可以哈《MySQL命令总结》https://blog.51cto.com/u_16239770/7383954添加记录语法格式--指定列插入数据INSERTINTO表名(列名1,列名2)VALUES(列值1,列值2);--全部列插入数据 INSERTINTO表名VALUE......
  • 基于Aidlux平台的工业视觉缺陷检测
    工业视觉缺陷检测是一种利用计算机视觉技术,对工业制品进行自动化检测,以识别和分类可能存在的缺陷的方法。它是现代工业生产中的重要环节,可以大大提高生产效率,降低产品缺陷率,提高产品质量。成像质量是根本,好的算法可以锦上添花影响因素:该项目为医疗注射器缺陷检测,要求检观出汗射器是......