1.switch语句,有时我们可以故意不使用break语句,达到想要的效果。
但是遇到这种情况最好要写一段注释,说明一下。
正常情况下还是要写break语句的,漏写会引发很严重的后果。
2.局部静态变量,在函数内部定义一个static变量,函数终止之后,这个局部的静态变量仍然有效。
静态变量如果不初始化,会默认初始化为0。
3.在循环中,如果其中有return时,需要在循环之后也加上return语句,这点平时经常容易忽略。如果循环没有进行,则无法进行正常return。
4.返回值如果是函数中定义的变量,应该是存于堆内存的,否则会在函数结束后销毁,导致错误。
5.返回数组
C++没有返回数组的操作,但是数组其实可以看成指针,使用指针将数组首地址传递回去。
指向指针的数组如是定义: int (*p) [10] = &arr;
则返回指向数组的指针的函数如是定义: int (* func(argu...))[10],返回一个指向大小为10的int型数组的指针
6.函数的默认参数
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
void defalutArguFunc(int num = 100, int index = 200);
int _tmain(int argc, _TCHAR* argv[])
{
int a, b;
cin>>a;
cin>>b;
defalutArguFunc(a);
getchar();
}
void defalutArguFunc(int num, int index)
{
cout<<num<<endl;
cout<<index<<endl;
}
在这里,如果函数有默认的参数,如果接收的参数少于规定的参数个数,则未给出参数的形参将被赋予默认值 。