1.函数是什么样子:
dataType functionName( dataType1 param1, dataType2 param2 ... ){//do something }//形式参数param...
2.什么是形式参数,什么是实际参数?
declareFunc(num1 , num2); //实际参数 num1,num2
3.函数声明
dataType functionName( dataType1 param1, dataType2 param2 ... );//此处加分号
对于多个文件的程序,通常是将函数定义放到源文件(.c
文件)中,将函数的声明放到头文件(.h
文件)中,使用函数时引入对应的头文件就可以,编译器会在链接阶段找到函数体。
在所有函数外部定义的全局变量的作用域默认是所有的源文件。
4.函数如何传递不同类型的参数
1.基本类型 ,复制变量的值给形参的形式传递。
double avarage(double a , double b){return (a+b)/2;} int main() { double num1 = 343.456; double num2 = 789.126; std::cout << "result is "<<avarage(num2,num1) << std::endl; //即在执行时赋值 a = num1;b=num2 //result is 566.291 }
2.类实例和数组,传递指针或者引用。
传递数组:
int avarageArr(int arr[], int size){//传递指针和数组大小。 int sum=0; for(int i =0;i<size;i++){ sum+= arr[i]; }; return sum/size; } int main() { int arr[3]= {1,2,3}; cout <<"result is "<<avarageArr(arr,3) << endl; return 0; }
传递对象:
struct Book_data{ std::string No; }; int main() { Book_data s1;//实例化 s1.No = "1-xd-b-3";//给s1赋值 printBookNo(s1);//传递引用 || &s1传递地址 return 0; } void printBookNo(Book_data &bookRef){ //绑定引用给参数,相当于&bookRef = s1 || *bookPointer指针接收地址 std::cout << bookRef.No<< std::endl;// || bookPinter->No 使用指针获取
}
5.花括号定义作用域。
double num1 = 343.456;
if(num1>0){
double num1 = 789.12;
cout<< num1 <<endl;//789.12
}
cout<< num1 <<endl;//343.456
6.#define(宏定义命令),用一个标识符来表示一个任意的字符串,如果代码中使用该标识符,那么该标识符就都替换成设置的字符串。
#define N 20 //不要加分号,加上分号会被连分号一起换出去。 int main() { int sum = 7 + N; printf("%d\n", sum);//27 return 0; }
7.内置预定义宏
printf("Date : %s\n", __DATE__);//__DATE__:表示当前的编译日期; printf("Time : %s\n", __TIME__);//__TIME__:表示当前的编译时间; printf("File : %s\n", __FILE__);//__FILE__:表示当前源文件的名称; printf("Line : %d\n", __LINE__);//__LINE__:表示当前源代码的行号;
原文链接: https://www.cnblogs.com/xinfangzhang/p/12511813.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/335871
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!