欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

深入理解C語言 static、extern與指針函數(shù)

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

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

exit(1)程序異常時退出程序

2.static(靜態(tài)變量)修飾局部變量

在局部變量使用static修飾,會延長局部變量的存在期。但我們需要注意一下幾點:

•雖然static修飾變量的生存期很長,但它始終是局部變量,不能在其他函數(shù)中使用
•static全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別?static函數(shù)與普通函數(shù)有什么區(qū)別?
     全局變量(外部變量)的說明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式,  靜態(tài)全局變量當然也是靜態(tài)存儲方式。 這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,  當一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效,  在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,  因此可以避免在其它源文件中引起錯誤。
     從以上分析可以看出, 把局部變量改變?yōu)殪o態(tài)變量后是改變了它的存儲方式即改變了它的生存期。把全局變量改變?yōu)殪o態(tài)變量后是改變了它的作用域, 限制了它的使用范圍。
     static函數(shù)與普通函數(shù)作用域不同。僅在本文件。只在當前源文件中使用的函數(shù)應(yīng)該說明為內(nèi)部函數(shù)(static),內(nèi)部函數(shù)應(yīng)該在當前源文件中說明和定義。對于可在當前源文件以外使用的函數(shù),應(yīng)該在一個頭文件中說明,要使用這些函數(shù)的源文件要包含這個頭文件
     static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次,防止在其他文件單元中被引用;
     static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值;
     static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內(nèi)存中只有一份,普通函數(shù)在每個被調(diào)用中維持一份拷貝
3.extern(外部變量)  修飾全局變量

extern 不但可以修飾變量還可以修飾函數(shù)

全局變量范圍已經(jīng)很廣了,為什么還要用extern來修飾呢?看下面一個例子

復(fù)制代碼 代碼如下:

#include "stdio.h"
void main()
{
      extern        a;
      extern        b;
      printf("a=%d,b=%d",a,b); 
}
int a=13,b=5;


上面例子中,在定義了a,b之前就使用它,也就是說extern擴展了全局變量的作用范圍。

extern不僅上邊例子這種用法,在不同文件中的全局變量也可以使用extern來使用。

4.指針函數(shù)

定義:指針函數(shù)就是函數(shù)類型和返回值都是指針的函數(shù)。

指針函數(shù)的一般形式:

 類型 *函數(shù)名(參數(shù)列表)

下面用一個例子來體會一下指針函數(shù)的妙用吧

復(fù)制代碼 代碼如下:

/* 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("%s\n",ps); 
SubString1(string,temp,2,9);
printf("%s\n",temp);
}

char * SubString(char s[],int i,int j)
{
static char temp[100];/*這個地方聲明的臨時數(shù)組必須為static,否則值傳不會去*/
int m,n;
for(m=0,n=i;n<=j;m++,n++)
{
temp[m]=s[n];
}
temp[m]='\0';
return temp;
}
char *SubString1(char s[] ,char temp[], int i,int j)
{
int m,n;
for(m=0,n=i;n<=j;m++,n++)
{
temp[m]=s[n];
}
temp[m]='\0';
}

上一篇:c病毒程序原理分析(防范病毒 c語言小病毒示例)

欄    目:C語言

下一篇:最小生成樹算法C語言代碼實例

本文標題:深入理解C語言 static、extern與指針函數(shù)

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3865.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有