C++堆棧、參數(shù)的傳遞與指針
#include "stdafx.h"
本文引用地址:http://www.ex-cimer.com/article/201612/324449.htmvoid fun1(int a,int b)
{
printf("%d %d",a,b);
}
int _tmain(int argc, _TCHAR* argv[])
{
void (*fun)(int x,int y);//void 是被指函數(shù)的返回值類型,int為被指函數(shù)的形參類型
fun=fun1;
fun(10,20);
return 0;
}
二。參數(shù)的傳遞
// 0224.cpp : 定義控制臺應(yīng)用程序的入口點。
//
#include "stdafx.h"
int a=3;
int b=4;
void fun(int &x,int &y)//這種情況是引用傳遞。即沒有在棧里開辟新的空間,交換了x,y的內(nèi)存數(shù)據(jù)
{//注意這兒&的意義不是取地址
int tem;
tem=x;
x=y;
y=tem;
}
void fun1(int x,int y)//這種情況時值傳遞,會開在棧里辟兩個空間x,y,會交換棧里的值而不會作用于堆
{
int tem;
tem=x;
x=y;
y=tem;
}
void fun2(int *p1,int *p2)
{
int tem;
tem=*p1;
*p1=*p2;
*p2=tem;
}
int _tmain(int argc, _TCHAR* argv[])
{
fun(a,b);
printf("a=%d b=%d",a,b);
fun1(a,b);
printf("a=%d b=%d",a,b);
fun2(&a,&b);//形參是指針實參為地址
printf("a=%d b=%d",a,b);
return 0;
}
評論