<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
語法:
property type var_name;
範例:
int main() { auto char i; register int j; static long k; extern double m; return 0; }
範例:
void f() { int i; //區域性變數預設屬性為 auto auto int j; //顯示申明 auto 屬性 }
#include<stdio.h> register int g_v; //eror int main() { register char var; printf("0x%08X",&var); //error return 0; }
static 關鍵字指明變數的“靜態”屬性
static關鍵字同時具有“作用域限定符”的意義
#include<stdio.h> int g_v; //全域性變數,程式的任意地方均能存取 static int g_vs; //靜態全域性變數,只在當前檔案中可存取 int main() { int var; //區域性變數,在棧上分配空間 static int svar; //靜態局域變數,在靜態資料區分配空間 return 0; }
下面看一段auto,register,static對比分析程式碼:
#include <stdio.h> int f1() { int r = 0; r++; return r; } int f2() { static int r = 0; r++; return r; } int main() { auto int i = 0; // 顯示宣告 auto 屬性,i 為棧變數 static int k = 0; // 區域性變數 k 的儲存區位於靜態區,作用域位於 main 中 register int j = 0; // 向編譯器申請將 j 儲存於暫存器中 printf("%pn", &i); printf("%pn", &k); //printf("%pn", &j); // error for(i=0; i<5; i++) { printf("%dn", f1()); } for(i=0; i<5; i++) { printf("%dn", f2()); } return 0; }
下面為輸出結果:
如果試圖獲取 register 變數 j 的地址,就會報如下錯誤:
另外,可以看到 i 和 k 的記憶體地址相隔很遠,這是由於這兩個變數一個在棧上,一個在靜態區
extern 用於宣告“外部”定義的變數和函數
extern 用於“告訴”編譯器用C方式編譯
C++ 編譯器和一些變種C編譯器預設會按“自己”的方式編譯函數和變數,通過 extern 關鍵可以命令編譯器“以標準C方式進行編譯”,如:
下面看一段 static 和 extern 的使用程式碼:
g.c
static int g_i; int getI() { return g_i; }
test.c
#include <stdio.h> extern int getI(); int main() { printf("%dn", getI()); return 0; }
下面為輸出結果:
注意如果想要直接在 test.c 檔案裡獲得 g_i 的值是不行的,因為static 修飾的全域性變數作用域只是宣告的檔案中
到此這篇關於C語言簡明講解變數的屬性的文章就介紹到這了,更多相關C語言變數的屬性內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45