其實作程式不管是那行,學什麼語言最終的目的是和就算機打交道的,我們寫的程式電腦是怎麼處理的呢???
電腦運行我們的程式無非就是吧磁碟-記憶體-cpu三者結合起來
我們寫一個程式碼肯定是在此盤中存著呢,但我們編譯的時候是把我們寫的代碼按照一定的規則合并成一個檔案(。exe)也就是我們平常見的安裝包,當我們運行.exe檔案時,這時才是我們的程式執行 ,
//注意:大家千萬不要把些程式當成程式在代碼中的運行,一個程式要分為,編寫,編譯,執行 ,每個程式都要經過這三個過程
編寫:就是我們寫的代碼
編譯:是把我們寫的代碼按照一定的規則合并成一個檔案(。exe)
執行:執行時候 系統獻給我們的程式指派一定的記憶體,這時候的記憶體叫做(棧)然後程式開始找到程式的入口main(),找到後開始逐行逐句的執行(每行代碼都站記憶體),
堆:在main()函數中我們遇到“alloc”(在其他語言中好多是new關鍵字)說明我們產生了一個堆;
//棧是有限的 而堆是無限的
#import <Foundation/Foundation.h>
@interface fist: NSObject
{
int a;
int b;
}
@propertyint a,b;
-(void)Print;
@end
@implementation fist
@synthesize a,b;
-(void)Print
{
NSLog(@"a==%db==%d",a,b);
}
@end
int main(int argc, const char * argv[])//棧的出現
{
@autoreleasepool {
// insert code here...
fist *one;// 定義了一個類的指標(在32為的系統中只佔4個位元組的記憶體)
one=[fist alloc];//為one聲明記憶體 (這個時候我們就有“堆“了)
one=[one init]; 初始化類(其實init是一個初始化函數,在這裡不用細究起是什麼)
int a=0;//在這裡我們有回到了棧裡面
}
return 0;
}