c++ 函数篇
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__:表示当前源代码的行号;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)