日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言的变量,常量及作用域等

發布時間:2024/9/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言的变量,常量及作用域等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.const定義常量

在C語言中,const可以用來定義的一個常量,在變量名前加上const即可。

int const a;

定義了一個a的整數常量,且a的值不能被修改。如果要修改a的值,有以下兩種方法。

方法一

int const a=100;

在定義時,就對它進行初始化

方法二

在函數中聲明const的形參在函數調用時會得到實參的值。

重點:const涉及指針變量的情況

const int * a;

int * const a;

在第一條語句中,const修飾的時指針a所指向的對象,也就是說我們無法同過指針a來修改其指向的對象的值。但是指針a本身的地址是可以改變的,既可以指向其他對象。

第二條語句中,cosnt修飾的指針a。因此,指針本身(地址)是不可以改變的,而指針所指向的對象的值是可以改變的。

2.define定義常量

define實際是一個預處理指令,其用途遠大于定義常量這一功能。這里只介紹define定義常量的基本用法。

使用define實際是進行符號替換,方法為

? ? ? ? #define 符號名 替換列表

符號名必須符合標識符命名規則。替換列表可以是任意字符序列,如數字,字符串,表達式等。列如:

#define? MUN “work hard!”/*后面的所有的MUN都會被替換為work hard!*/

#define AUS 99 ? ? ? ? ? ? ? ? ??/*后面的所有的AUS都會被替換為99!*/

#define DEPP “\a” ? ? ? ? ? ? ??/*后面的所有的DEPP都會被替換為“\a”!*/

習慣上,經常用大寫字母來命名符號位,而用小寫字母來命名變量

注意:我們在用#define的時候,千萬記得不要在末尾加“;”,很多初學者些代碼時習慣在每句代碼后面加“;”。這里要小心。

3.作用域

定義:程序中可以訪問一個指示符的一個或多個區域,既變量出現的有效區域,決定了程序的那些部分通過變量名來訪問變量。一個變量根據其作用域的范圍可以分為函數原型作用域,局部變量和全局變量。

?1).函數原型作用域,其作用域始于“(”,結束于“)”。

如下列原型聲明:

double Area(double radius);

radius 的作用域盡在于此,不能用于程序正文其它地方,因而可以省略。

2).局部變量

在函數內部定義的變量稱為局部變量。局部變量僅能被定義該變量的模塊內部的語句所訪問。換言之,局部變量在自己的代碼模塊之外時不可見的。

對于局部變量,要注意的是,它們僅存在于。定義改變量的執行代碼塊中,即局部變量在進入模塊時生成(壓入堆棧),在退出模塊時消亡(彈出堆棧)。定義局部變量的最長見的代碼塊時函數,代碼如下:

/*在函數內聲變量*/
void function1(){
  int x=10;
}
void function2(){
  ?int x;
?  x=20;
}

整數變量x被定義了兩次,一次在function1中,另一次在function2中,function1和function2中的x互不相關,原因是每個x作為局部變量僅在被定義的模塊內可見。

3).全局變量

與局部變量不用,全局變量貫穿整個程序,它的作用域為源文件,可被源文件中的任何一個函數使用。他們在整個程序執行期間保持有效。示例代碼:

#include <stdio.h>
int a,b;//全局變量
void function1(){
?
}
float x,y;
void function2(){
}
int main(int argc,char * argv[])
{
  ?return 0;
}

得出結論:上例中定義了a,b,x,y都是在函數外部定義的外部變量,都是全局變量。x,y是在function1之后,在function1內沒有對x,y聲明,所以他們在function1中無效,a,b定義在源程序最前面,因此在function1,function2,main內不加聲明就可以使用。

? ?? 對于全部變量有以下幾點需要說明。

(1)對于局部變量的定義和聲明,可以不加區分,而對于全局變量則不然。全局變量的定義和全局變量的聲明并不是一回事,全局變量定義必須在所在的函數之外,且只能定義一次,其一般形式為

[extern] 類型說明符 變量名,變量名.....

其中extern可以省去不寫,例如:

int a,b;等效于extern int a,b;

而全局變量聲明出現在要使用改變量的各個函數內。在整個程序內,可能出現多次。全局變量在定義時就已經分配了內存單元,并且可做初始賦值。全局變量聲明不能在賦予初值,只是表明在函數內要使用某外部變量。

(2)外部變量可加強函數模塊之間的數據聯系,但是又使函數要依賴這些變量,因而使得函數的獨立性降低。從模塊化程序設計的觀點來看這是不利的,因此在不必要時盡量不要使用全局變量。

(3)全局變量的內存分配是在編譯過程中完成的,它在程序的全部執行過程中都要占用儲存空間,而不是僅在需要時才開辟儲存空間。

(4)在同一源文件中,允許全局變量和局部變量同名。在局部變量的作用域內,全局變量不起作用。因此,若在改函數中想要使用全局變量,則不能在定義一個同名的局部變量。

(5)全局變量的作用域可以通過關鍵字extern擴展到整個文件或其他文件。

?

轉載于:https://www.cnblogs.com/hj-1996-123/p/10211943.html

總結

以上是生活随笔為你收集整理的c语言的变量,常量及作用域等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人人澡人人澡人人 | 黄色片网站在线观看 | 精品一区二区三区视频 | 一级视频在线播放 | 国产无遮挡a片又黄又爽 | 日韩高清免费观看 | 日韩精品成人一区 | 67194成人在线观看 | 99热超碰在线 | 精品人妻一区二区三区久久嗨 | 一区二区三区日韩在线 | 91一级片 | 黄色成人在线免费观看 | 中文字幕三级电影 | 手机成人av在线 | 一级免费观看 | 好色先生视频污 | 日本a级片网站 | 亚洲精品免费在线观看视频 | 99re视频这里只有精品 | 色操插 | av免费观看在线 | 亚洲图片视频在线 | 日韩在线视频不卡 | 男人操女人动漫 | 久久久久夜夜夜精品国产 | 国语对白91 | 狠狠操中文字幕 | 亚洲最新中文字幕 | 最新中文字幕在线播放 | 亚洲精品日韩欧美 | 欧美精品乱码99久久蜜桃 | 亚洲天堂自拍偷拍 | 最新自拍偷拍 | 日本精品在线看 | 朝桐光一区二区三区 | 骚av在线| 在线观看中文字幕视频 | 日韩不卡一区 | 超碰人人99 | 91看黄 | 精品国产人妻一区二区三区 | 我把护士日出水了视频90分钟 | 总裁憋尿呻吟双腿大开憋尿 | 成人免费高清在线观看 | 欧美日韩国产电影 | 大肉大捧一进一出好爽视频 | 黄色片地址| 日韩av一二三区 | 一级片a级片 | 秋霞电影网一区二区 | 艳妇乳肉亭妇荡乳av | a在线观看免费 | 四虎影视在线 | avtt亚洲| 国产美女又黄又爽又色视频免费 | 免费日本视频 | 高清视频一区二区三区 | 超碰在线人人草 | 性av网站 | 538任你躁在线精品免费 | 国产乱码精品一区二区三区忘忧草 | 打美女屁股网站 | 亚洲av电影一区 | 极品尤物在线观看 | www日本在线 | 欧美丰满老熟妇aaaa片 | 国产毛片视频 | 日本欧美日韩 | 久久一级免费视频 | 日韩专区中文字幕 | 能看的av| av美女网站| 欧美日韩一区二区三区四区五区六区 | 两口子交换真实刺激高潮 | 最近免费中文字幕大全免费版视频 | 狠狠干夜夜骑 | 一区二区三区四区在线视频 | 久久躁日日躁aaaaxxxx | 久久男人精品 | 国产精品毛片一区 | 欧美国产激情 | 婷婷婷色| 大胸美女无遮挡 | 国产精品19p | 日韩中文av在线 | 国产在线日韩 | 激情网五月天 | 亚洲一区二区三区免费观看 | 色翁荡息又大又硬又粗又爽 | 夜夜操综合 | 国产理论视频 | 欧美一区二区三区爱爱 | 午夜伦理影院 | 亚洲性影院 | 黄色片亚洲 | 91pron在线| 天堂一级片 | 99无码熟妇丰满人妻啪啪 |