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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量

發布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

變量的作用域

我們知道,變量根據其作用域有全局變量和局部變量之分。全局變量作用域是整個文件,并且可以使用關鍵字?extern?達到跨文件調用的目的。但是局部變量值作用于它當前所在的塊(即該變量所處最內層中括號之間的區域),當函數執行完并離開當前塊后,局部變量及其所處內存空間的值就會銷毀。

static?關鍵字

static?+ 變量聲明 表示聲明的這個變量是靜態變量。靜態不是說它的值不會被改變,而是它在內存中的地址靜止不動,這也就意味著它的值從一直到函數運行結束之前,都不會被銷毀。有趣的是,它聲明的的變量只會聲明一次,再次調用聲明語句時,會自動跳過這條語句。如下面這段代碼:

#include

int main()

{

int i = 0;

printf("num1\tnum2\n");

for(i = 0;i<4;i++)

{ static int num1 = 4;

int num2 = 4;

num1 ++;

num2 ++;

printf("%d\t%d\n",num1,num2)

}

}

運行結果為:

可以看到static初始化的num1變量,雖然我們放在循環中,看起來好像每次都會對變量進行初始化,但是結果卻出人意表,num1在循環中沒有受到初始化語句的影響,可以正常的進行運算。

指針

指針是一個值為內存地址的變量(或數據對象)。指針本身是不具有內存的,但是它可以通過賦值,指向其他變量的地址進而得到它的內存。因為在計算機中,所有的變量都會有單獨一塊內存空間,所以理論上,只要使用指針指向變量的地址,就可以在程序的任何位置調用變量。所以,指針是我們實現跨文件跨域調用變量最重要的手段。

使用指針跨文件調用變量

有了上面的基礎,我們就可以開始調用變量了。為了表現跨文件的功能,我們定義一個頭文件?test.h?,并且在里面放入一個函數聲明?void Input();?,然后我們再創建一個?test.c?文件來作為頭文件的實現文件。最后在主文件?main.c?中調用它,函數代碼如下:

test.c文件

#include "test.h"

int *ptr; //聲明一個外部指針用來調用變量

void Input()

{

//初始化一個靜態的數組

static int nums[10] = {1,2,3,4,5,6,7,8,9,10};

ptr = nums; //將外部指針指向數組首地址

}

main.c文件

#include "test.h" //引用我們自定義的頭文件

#include

extern int *ptr; //調用我們的外部指針

int main()

{

Input(); //初始化數組并給指針賦值

//下面打印結果,驗證是否成功調用變量

for(int i = 0;i<10;i++)

{

printf("%d\t",*(ptr + i));

}

}

運行結果為

可以看到,我們通過一個外部指針,在?Input()?函數內部將指針指向變量的地址,成功的調用了在其他文件的函數內部聲明的數組/變量。

事實上,在這里面,static?關鍵字起到了至關重要的作用。我們嘗試將nums[]數組改成普通的自動(auto)變量,看看運行結果:

運行結果為

可以看到,循環打印出來的是一片混亂的數值,這意味著指針向內存的數值已經被銷毀了

閱讀原文

總結

以上是生活随笔為你收集整理的c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久夜靖品2区 | 成人欧美性 | 亚洲免费视 | 无码国精品一区二区免费蜜桃 | 日韩免费小视频 | 天天爽天天操 | 国产综合一区二区 | 超碰激情在线 | 中文字幕在线有码 | 日韩av免费 | 欧美日本一区二区 | 欧美精品久久久久久久免费 | 国产精品久久久久久网站 | 亚洲成人黄色在线观看 | 国产精品久久精品三级 | 久久综合99| 瑟瑟视频免费观看 | av免费大全 | 国产成人无码精品久久久久 | 西西久久 | 天堂网中文字幕 | 无码人妻精品一区二区蜜桃色欲 | 色婷婷视频网 | 欧美日韩精品中文字幕 | 97视频在线免费观看 | xxx毛片| 婷婷色九月 | 一区二区不卡 | 狠狠干狠狠干 | 欧美精品免费看 | 久久婷婷色综合 | aaa国产精品 | 欧洲亚洲女同hd | 影音先锋丝袜美腿 | 日韩免费观看一区二区 | 午夜性刺激免费视频 | 女性裸体无遮挡胸 | 国产一区二区三区黄 | 在线看视频 | 91干视频 | 91久久一区 | 免费在线成人 | 牛牛影视一区二区 | 欧美黑吊大战白妞欧美大片 | 久久亚洲一区二区三区四区 | 国模无码国产精品视频 | 亚洲激情中文字幕 | 男男上床视频 | 国模无码国产精品视频 | 国产青青草在线 | 欧美精品在线第一页 | 欧洲成人av | 热99精品视频| 亚洲欧美日韩国产成人精品影院 | 亚洲国产成人自拍 | 天天干天天上 | 色香蕉视频 | 国产香蕉视频 | 久草精品视频 | 成人免费在线视频观看 | 久久精品偷拍视频 | 日韩涩| 国产影视一区二区三区 | 日韩精品久久一区二区 | 亚洲国产精品va在线 | a级片免费看 | 成人福利片 | 亚洲综合免费 | 亚洲国产成人精品视频 | 天天插天天摸 | 精品久久久蜜桃 | 国产一区二区三区四区在线观看 | 亚洲喷水 | 日韩一区二区a片免费观看 伊人网综合在线 | 日本不卡一二 | 樱花视频在线免费观看 | 成人αv| 伊人久操视频 | 色久影院| 精品日韩中文字幕 | 丰满少妇一区二区三区视频 | 国产精品成人aaaaa网站 | 红桃视频国产精品 | 欧美日韩精品在线 | www黄色av| 国产日本欧美一区二区 | 国产一区二区三区免费观看 | 熟妇人妻中文av无码 | 欧美人妻日韩精品 | jizz内谢中国亚洲jizz | 男人操女人网站 | 亚洲福利一区二区 | 午夜粉色视频 | 在线免费av片 | 中文字幕一二三 | 亚洲午夜av久久乱码 | 成人无码视频 | 国产一级一片免费播放 | 欧美区在线观看 |