C语言 static、extern与指针函数

  次阅读 来源:互联网(转载协议) 2016-01-19 12:58 我要评论(0)

这篇文章主要介绍了C语言 static、extern与指针函数,有需要的朋友可以参考一下

1.exit(0)正常退出程序

exit(1)程序异常时退出程序

2.static(静态变量)修饰局部变量

在局部变量使用static修饰,会延长局部变量的存在期。但我们需要注意一下几点:

虽然static修饰变量的生存期很长,但它始终是局部变量,不能在其他函数中使用

static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

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

从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。

static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;

static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;

static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

3.extern(外部变量)修饰全局变量

extern 不但可以修饰变量还可以修饰函数

全局变量范围已经很广了,为什么还要用extern来修饰呢?看下面一个例子

代码如下:

#include "stdio.h"

void main()

{

externa;

externb;

printf("a=%d,b=%d",a,b);

}

int a=13,b=5;

上面例子中,在定义了a,b之前就使用它,也就是说extern扩展了全局变量的作用范围。

extern不仅上边例子这种用法,在不同文件中的全局变量也可以使用extern来使用。

4.指针函数

定义:指针函数就是函数类型和返回值都是指针的函数。

指针函数的一般形式:

类型 *函数名(参数列表)

下面用一个例子来体会一下指针函数的妙用吧

代码如下:

/* Note:Your choice is C IDE */

#include "stdio.h"

char * SubString(char s[],int i,int j);

char *SubString1(char s[] ,char temp[], int i,int j);

void main()

{

char string[]="I Love C Language";

char *ps=NULL;

char temp[100];

ps=SubString(string,2,9);

printf("%sn",ps);

SubString1(string,temp,2,9);

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...