07 引用 指標 和傳遞

weixin_33890499發表於2016-06-18

一,儘量用引用來傳遞變數
二,儘量用const 來限制形參的修改

程式碼區
資料區
-----------------
常量區
----------------
----------------
---------------

三,全域性變數和靜態變數都是預設初始化0.
|----------------|

程式碼區
資料區
-----------------
常量區
----------------
----------------
---------------

int main(int argc, char* argv[])
{
int m = 15,n=25; //c
vor(m); //形參的傳入,相當於是m的複製一份給vor函式,用完消失
cout << m <<endl;
inr(m); //數值地址傳入,是對地址進行修改。(引用和取別名)是對源引數的再次命名。。而指標是對指標指向進行交換。
cout << m <<endl;
return 0;
}

void inr(int& m) //---------------引用
{
++m;

}

void vor(int m)
{
++m;

}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
//-------------------------------------------------------------------
//===============函式指標====================

// class.cpp : Defines the entry point for the console application.
//

include "stdafx.h"

include <iostream>

include <string>

include <cstring>

using namespace std;

void reset(int a[], int n);
void input(int a[], int n);
void output(int a[], int n);
void sort(int a[], int n);

int main(int argc,int argv[])
{
void (fp)(int a[],int n) = NULL;//函式指標 將函式名改為(fp),並實現初始化
//void sort(int a[], int n);將函式名改為上面的函式指標。
int x[5];
fp = output; //將指標函式 等於 output函式
output(x,5); //-------------
fp(x,5); //---------兩者輸出結果一樣

//--------------------
fp = reset; //必須是引數相同的同類函式
fp(x,5);
fp = output; //將指標函式 等於 output函式
output(x,5); //-------------
return 0;
}

void output(int a[], int n)
{
for(int i= 0;i <n ;i++)
cout << a[i] << " " <<endl;
}

void reset(int a[], int n) //初始化地址,將陣列全部歸零
{
memset(a,0,sizeof(int) *n); //a為陣列首地址 三個引數
//for(int i =0; i < n; i++)
// a[i] = 0

}

相關文章