//一。指針函數(shù)
#include "stdafx.h"
二。參數(shù)的傳遞
C++堆棧、參數(shù)的傳遞與指針//一。指針函數(shù) void fun1(int a,int b) { printf("%d %d\n",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)用程序的入口點(diǎn)。 // #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\n",a,b); fun1(a,b); printf("a=%d b=%d\n",a,b); fun2(&a,&b);//形參是指針實(shí)參為地址 printf("a=%d b=%d\n",a,b); return 0; } |
|