pragma mark 全局變量和局部變量-基本概念
pragma mark 概念
/**
*
static 和 extern
局部變量存儲在棧中,當作用域結(jié)束 系統(tǒng)會自動釋放棧中的局部變量
全局變量存儲在靜態(tài)區(qū)中,他會隨著程序的啟動而創(chuàng)建,隨著程序的結(jié)束而結(jié)束
*/
pragma mark 代碼
#include <stdio.h>
//void text(int v1);
void text();
#pragma mark 局部變量
/**
局部變量
概念 : 局部變量就是定義在函數(shù),代碼塊和函數(shù)形參列表中的變量,我們就稱之為局部變量
作用范圍: 從定義的那一行開始 一直知道遇到大括號結(jié)束或者遇到return為止
特點: 相同作用域范圍內(nèi)不能出現(xiàn)同名的局部變量
相同作用域范圍內(nèi) 不能出現(xiàn)同名的局部變量
不同作用域歐范圍內(nèi)出 同名的局部變量,內(nèi)部的局部變量會覆蓋外部的局部變量
注意:
局部變量沒有固定的初始化值,如果沒有對局部變量進行初始化,那么局部變量中是一些隨機的值,
所以在開發(fā)中 千萬不要使用未初始化的局部變量
存儲位置:
局部變量存儲在棧中,當作用域結(jié)束 系統(tǒng)會自動釋放棧中的局部變量
*/
#pragma mark 全局變量
/**
全局變量
概念 : 寫在函數(shù),代碼塊,形參列表外 的變量,我們就稱之為 全局變量
作用范圍 : 從定義的那一行開始 一直 直到文件末尾{暫時這樣認為}
特點 :
全局變量 和 局部變量可以同名
如果存在和全局變量同名的局部變量, 那么局部變量會 覆蓋 全局變量
注意:
全局變量 如果沒有進行初始化, 那么系統(tǒng)默認 會將全局變量初始化為0
存儲位置:
全局變量存儲在靜態(tài)區(qū)中,他會隨著程序的啟動而創(chuàng)建,隨著程序的結(jié)束而結(jié)束
*/
int num; // 全局變量 num = 0;
int main()
{
#warning 局部變量
/*
int num = 10;
{
// int a = 55;
int num = 55;
printf("num %i\n",num);
}
// a = 100;
// int num = 20;
int b;
printf("b = %i\n",b);
*/
#warning 全局變量
/*
int num;// 局部變量
num = 10; // 訪問的是局部變量的num
printf("num = %i\n",num); // 10
text();
printf("num = %i\n",num);
*/
text();
text();
return 0;
}
//int num; // 全局變量
void text()
{
// printf("num = %i\n",num);
// num = 998; // 訪問的是全局變量
num++; // 1, 2
printf("num = %i\n",num);
}
//void text(int v1)
//{
//// printf("num %\n",num);
//// int v1 = 22;
//}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者