有关static的几个小程序

/*
#include<stdio.h>


int main(void)
{
	
  static int a=1;               //a定义为静态全局变量
  int b=1,i=3;

  while(i--)
  {
	  a++;
	  b++;
  }	  
	
  printf("a:%d,b:%d\n",a,b);	 //结果;a为4,b也为4
  return 0;
	
}

*/

#include<stdio.h>

int func(void)
{
	static  a=10; 	//定义为静态局部变量
    a++;
	printf("a:%d\n",a);
	return a;    //*****这要有return a;否则有问题
}

int main()
{
    
    int b=1,i=0;

    for(;i<3;i++)
     {
	
	   b++;
	   printf("func():%d,b:%d\n",func(),b);  //****func()函数在此处已经执行了,就不要在主函数中重复写,否则输出两次哦
     }	  
	
   	
    return 0;
}	

/*
#include <stdio.h> 

int f(int a) 
{ 
    auto b = 0; 
   printf("b=%d\n",b);
   static c = 3; 
   printf("c=%d\n",c);
                                          
    b = b + 1; 
    c = c+ 1; 
    return ( a+ b+ c) ; 
} 

main( ) 
{ 
    int a = 2, i; 

    for ( i = 0; i < 2; i++) 
        printf ( "%d\n" , f(a) ) ;  //结果为7,8*********static所定义的变量具有记忆功能
}
*/

<div> **一个有返回值的函数 没有return 本身就是语法错误
只不过 编译器优化了 </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值