一,尽量用引用来传递变量
二,尽量用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
}
网友评论