专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

C++堆栈、参数的传递与指针

作者:黄波海   来源:本站原创   点击数:  更新时间:2014年03月07日   【字体:

//一。指针函数
#include "stdafx.h"

 
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 是被指函数的返回值类型,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\n",a,b);
 
fun1(a,b);
printf("a=%d  b=%d\n",a,b);
 
fun2(&a,&b);//形参是指针实参为地址
printf("a=%d  b=%d\n",a,b);
 
return 0;
}

关闭窗口

相关文章