iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
佛心分享-IT 人自學之術

C++探險家系列 第 8

Day 8 函式續集

  • 分享至 

  • xImage
  •  

昨天有說到變數儲存修飾字分別有:extern、register、static、const這幾個。
今天就會把每一個修飾字一一的做個小練習!那我們就開始吧~
一、變數儲存:
1.extern 練習題
檔案一:

#include <iostream>
#include "6-4-1-file2.cpp"
using namespace std;
extern void f (int);
int a;
int main(void)
{
    f(5);
    cout<<"a="<<a<<endl;
    return 0;
}

檔案二:

extern int a;
void f(int b)
{
    a=b*b;
    return;
}

小總節:extern主要目的是告訴編譯器,這個數字已經在其他地方宣告過,不再配置記憶體給該變數。
2.register 練習題

#include <iostream>
using namespace std;
int main(void)
{
    register int i;
    for(i=0;i<10000;i++)
    cout<<i<<" ";
   return 0;
}

小總節:主要目的為如果一個迴圈執行次數頻繁,控制該迴圈次數變數就可用register來宣告,執行時可以節省時間。
3.static 練習題

#include <iostream>
using namespace std;
int f (void);
int main(void)
{
    int i;
    for(i=1;i<5;i++)
       cout<<"x="<<f()<<endl;
 }
 int f(void)
 {
     static int x=0;
     return x++;
 }

小總結:主要目的為可以讓變數初始化一次。
4.constant 練習題

#include <iostream>
using namespace std;
int main(void)
{
    const int x = 1;
    x++;
}

小總結:目的為被修飾的變數不能做更改。
二、遞迴函式(n!計算)練習題:

#include <iostream>
using namespace std;
int factorial(int);
int main(void)
{
    int n;
    cout<<Input n:";
    cin>>n;
    cout<<n<<"!="<<factorial(n);
}
int factorial (int n)
{
    if (n==1)
     return 1;
     return n*factorial (n-1);
}

三、main 函式的引數(根號的計算) 練習題:

#include <iostream>
using namespace std;
int SQRT(int);
int main(void)
{
    int n;
    cin>>n;
    cout<<SQRT(n);
    return 0;
}
int SQRT(int n)
{
    int i;
    if(n<1) return -1;
    for(i=1;i<n;i++)
        if(i*i>n) break;
    if( (i*i-n)< (n - (i-1)*(i-1)) )
        return i;
    else
       return i-1;
 }

!!以上內容是跟著第一次學C++就上手第二版第六章後半部實作內容做學習!!


上一篇
Day 7 函式
下一篇
Day 9 陣列
系列文
C++探險家30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言