iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

C語言與C++語言自學系列 第 12

C語言與C++語言自學第十二天(函式呼叫堆疊以及活動紀錄)

  • 分享至 

  • xImage
  •  

C++語言的函式呼叫堆疊以及活動紀錄

C++函示呼叫必須了解一種稱為堆疊stack的資料結構,可以把堆疊想成一堆盤子,當一個盤子推上去,通常放在最頂端,這個動作把盤子推入成為pushing堆疊,同樣地,當一個盤子拿下來時,通常從最頂端拿,稱為把盤子取出popping。堆疊是一種後進先出last in,first out,LIFO的資料結構

#include <iostream>
using namespace std;

int square(int);

int main(){
    int a=10;
    cout<<a<<" squared: "<<square(a)<<endl;
}
int square(int x){
    return x*x;
}

首先作業系統呼叫main,並把活動紀錄堆入堆疊,該紀錄告訴main何時返回作業系統,並配置main的自動變數所需的記憶體空間變數a=10,main在返回作業系統呼叫了square,這會把square的堆疊框架推入函示呼叫堆疊,此框架包含square返回main時的位址,及其自動變數x的記憶體空間

C語言至少做一次的重複執行do...while

do{程式片段}while(表示式),當表示式成立時,就執行程式片段

#include <stdio.h>
int main(){
    int count=3;
    while(count<3){
        printf("%d\n",count);
        count++;
    }
    return 0;
}

while和do...while的差別在哪呢

#include <stdio.h>
int main(){
    int count=3;
    do{
        printf("%d\n",count);
        count++;
    }while(count<3);
    return 0;
}

while跟do while最大的不同就是do會先做大括弧裡面的程式一次,while有小於3才繼續做,而while的情況下一次都不會做,因為while第一次就會進行判斷了


上一篇
C語言與C++語言自學第十一天
下一篇
C語言與C++語言自學第十三天
系列文
C語言與C++語言自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言