日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

C/C++舉例講解關(guān)鍵字的用法_C 語言

作者:學(xué)編程的小渣渣a ? 更新時(shí)間: 2022-07-20 編程語言

static

static修飾全局變量

static修飾的全局變量只能在當(dāng)前聲明文件內(nèi)使用,不能夠在其他文件中使用。

舉例:

static int a=0;    //static修飾后變量a僅在本文件中可見,其他文件里不可見變量a(隱藏了),別的文件不可以調(diào)用
       int b=0;    //其他文件可以通過extern int b來使用本文件中的全局變量b

目標(biāo):此文件調(diào)用上一個(gè)文件中的全局部變量b

#include<stdio.h>
extern int b;      //先用extern把b調(diào)過來
	int main()
{
      int i=b;     //把b賦值給i
      return 0;
}

static修飾局部變量

include<stdio.h>
int main()
{
	int i=0;
	for(i=0,i<10;i++)
	{
		ptintf("counter=%d\n",fun());  //在main函數(shù)里調(diào)用fun函數(shù),來修改counter的值并獲取,前提counter必須被static修飾,若不修飾,counter會(huì)隨著fun函數(shù)退出而銷毀,其他外部函數(shù)不能獲取counter的值
	}
	return 0;
}
int fun()                 //聲明一個(gè)函數(shù)fun,實(shí)現(xiàn)計(jì)數(shù)功能
{
	static int counter;   //函數(shù)內(nèi)部聲明static局部變量counter,可以保證counter只能在fun函數(shù)內(nèi)部被修改,其他地方不能修改counter的值;生命周期為整個(gè)源程序,作用域不改變只能在此函數(shù)內(nèi)使用
	counter++;           //調(diào)用此fun函數(shù)時(shí),counter就加1
	return counter;      //返回counter的值
}

static修飾函數(shù)

static對(duì)函數(shù)修飾與對(duì)全局變量的修飾相似,只能被本文件中的函數(shù)調(diào)用,不能被同一程序其他文件中的函數(shù)調(diào)用。

舉例:

static int getdata1()  //static修飾getdata1,此函數(shù)不能被其他文件調(diào)用
{
	return 1;
}
     int getdata2()   //未加static修飾,其他文件可以調(diào)用getdata2()
{
	return 2;
     }

另一個(gè)文件:想調(diào)用getdata2()

extern int getdata2();  //把上一個(gè)文件中g(shù)etdata2()函數(shù)調(diào)過來
	int main()
{
	int ret=getdata2(); //定義ret并初始化把getdata2的返回值賦給ret
	return 0;
}

注:

(1)一個(gè)源程序通常由若干個(gè)c文件組成,c文件之間相互調(diào)用函數(shù)與變量時(shí),需要通過extern進(jìn)行外部聲明。

(2)extern的作用是用于聲明外部變量、外部函數(shù);static用來防止c文件內(nèi)的函數(shù)、變量被外部調(diào)用,隱藏作用。

(3)聲明對(duì)象:基本變量、函數(shù)、結(jié)構(gòu)體、枚舉等。

(4)static局部變量存在內(nèi)存的靜態(tài)區(qū),即使當(dāng)前函數(shù)運(yùn)行結(jié)束,靜態(tài)變量的值不會(huì)被銷毀,還繼續(xù)存在,函數(shù)下次運(yùn)行時(shí)仍可以用到這個(gè)值。

const

1. const聲明的變量的值不能再被修改,與#define相比,const限定符優(yōu)點(diǎn):

(1)宏定義僅是對(duì)字符常量簡單替換,不能檢查類型;

(2)const可以保護(hù)被修飾的變量,防止意外修改;

(3)編譯器通常不為普通const常量分配存儲(chǔ)空間,而是將它們保存在符號(hào)表中,這使得它成為一個(gè)編譯期間的常量,沒有了存儲(chǔ)與讀內(nèi)存的操作,使得它的效率也很高;

2.以下三個(gè)變量聲明的含義:

(1)int const*p;中const 修飾的是指針p, 表示指針p的值不能改變,而p(即地址)是可以改變的。

(2)int * const p;中const修飾的 p(即地址)是常量,不可改變,但是指針p的值可以改變。

(3)int const *p const;中是(1)和(2)兼得,表示 只讀, 其地址以及地址中對(duì)應(yīng)的值都不可改變。

而const int *p與int const *p用法一樣,修飾的都是指針p的值不能改變。

BOOL

關(guān)鍵字bool是聲明 布爾邏輯變量的,變量要么是真,要么是假,用1表示true、0表示false;_Bool類型實(shí)際上是一種整數(shù)類型,僅占用1位存儲(chǔ)空間, 程序通過布爾值可選擇執(zhí)行哪部分代碼。

?? ?bool done = false;
?? ?while(!done)
?? ?{
?? ?......
?? ?}

break

關(guān)鍵字break是用來跳出一個(gè)do,for,while的循環(huán),它也可以結(jié)束一個(gè)switch語句的 子句,讓程序忽略下面的case代碼;case關(guān)鍵字與switch搭配用來檢測匹配。

continue

在一個(gè)循環(huán)語句中, continue語句用來結(jié)束這次循環(huán),后面的循環(huán)繼續(xù),下面代碼顯示 除了10之外0-20的所有數(shù)字。

for(int i = 0;i < 21;i++)
{
	if(i == 10)   //判斷i為10時(shí),走這個(gè)if語句;i不為10時(shí),就不走if語句,直接走cout語句
	{
	continue;     //判斷i等于10了,那就結(jié)束這次循環(huán),不計(jì)入(不cout)i為10這個(gè)數(shù)據(jù) 
	}
	cout <<i<<""; //cout用于在計(jì)算機(jī)屏幕上顯示信息,即打印、輸出
}

原文鏈接:https://blog.csdn.net/m0_46660825/article/details/124849299

欄目分類
最近更新