C++堆栈、参数的传递与指针
时间:12-01
来源:互联网
点击:
//一。指针函数
#include "stdafx.h"
void fun1(int a,int b)
{
printf("%d %d",a,b);
}
int _tmain(int argc, _TCHAR* argv[])
{
void (*fun)(int x,int y);//void 是被指函数的返回值类型,int为被指函数的形参类型
fun=fun1;
fun(10,20);
return 0;
}
二。参数的传递
// 0224.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
int a=3;
int b=4;
void fun(int &x,int &y)//这种情况是引用传递。即没有在栈里开辟新的空间,交换了x,y的内存数据
{//注意这儿&的意义不是取地址
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;
}
C++堆栈传递与指 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)