C 學習歷程 基礎部分 C 中的函式學習

2021-12-30 03:24:25 字數 1058 閱讀 6323

本文位址:

作者:sushengmiyan

一。靜態變數:

區域性變數是執行緒到達定義的地方的時候進行初始化,如果定義在函式中,那麼每次函式呼叫的時候,都會進行初始化,函式的每個呼叫保留著乙個副本,對於靜態變數來說,只在第一次呼叫的時候初始化。通過下面乙個例子可以細細體會這個區別:

// sushengmiyantest.cpp : 定義控制台應用程式的入口點。

通過執行結果可以看出,n是靜態變數,雖然每次呼叫函式了,但是只是一次初始化,後面執行n++之後,值就是n++的值,再次呼叫也不會初始化,對於x來說是區域性變數,每次呼叫都會初始化一下,所以每次都是0.

二。引數傳遞

// sushengmiyantest.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include

using namespace std;

void f(int a)

{ while(a--)

{ static int n = 0;

int x = 0;

cout<

先看這個例子,結果如下:

通過這例子可以看出,經過函式呼叫,初始化的時候同樣是3 ,第乙個引數是形式引數,傳入之後對其進行操作,只在函式內部發生作用,函式外部,值不會發生變化,對於第二個引數,是傳位址的,就是我修改了之後呢,記憶體中這個值也就發生了變化,再獲取的時候就是函式內部操作之後的數值了。

所以輸出的是a = 3,b=4.

C 學習歷程(一 C 基礎)

1 c 的結構體 struct employee intmain c 結構體可以帶方法的,訪問許可權可以是public private protected,並且可以從類或結構體那裡繼承而來 2 c 的類 class employee intmain c 結構體成員預設訪問級別 繼承是public,c...

c 中的數學函式

math.h 數學函式庫,一些數學計算的公式的具體實現是放在math.h裡,具體有 1 三角函式 double sin double double cos double double tan double 2 反三角函式 double asin double 結果介於 pi 2,pi 2 doubl...

C 學習歷程10 函式高階

int func int a,int b 10,int c 10 1.如果某個位置引數有預設值,那麼從這個位置往後,從左向右,必須都要有預設值 2.如果函式宣告有預設值,函式實現的時候就不能有預設引數 int func2 int a 10,int b 10 int func2 int a,int b...