一、实参类型与形参类型不匹配时,实参类型自动转化为形参类型
Return 语句 返回数据的类型 与 函数类型 不匹配时,自动转化为函数的类型
函数声明:
事先通知编译系统,可以不写形参名。
float add(float, float);
二、Skills
编程时把main函数写到最前,每次需调用函数时都要写 函数原型 来声明函数。
例如如此声明函数: void swap(int, int);
三、关于参数的类型
指针作为函数参数
声明时:void swap(int *p1, int *p2);
调用时: swap(pointer_1, pointer_2);
一维数组地址 作函数参数,用指针变量去接受或者用数组接收
声明时:void swap(int a[]);或者 void swap(int *a);
调用时: swap(a); //a为数组名
多维数组名作函数参数时,用指向一维数组的指针变量接收或多维数组接受
声明时:void swap(int a[ ][n ]);或者 void swap( int (*p) [ n] );
//n为具体数组的列数,必须要指定
调用时: swap(a); //a为二维数组名
二维数组a[5][6]; 其中 a == &a[0] a[0] == &a[0][0]
a[1] == &a[1][0] a[2] == &a[2][0] …… //原则:数组名为首元
地址 a 和 a[n],(n=1,2,……) 同样适用。
函数指针作参数
声明时:void swap(double (*p)(int,int) );
调用时: swap(f); //只需传参数名(函数入口地址),不需
//传函数的参数。其中f为函数名 p188 /c++ /谭
区别以下两者的差别:
void *swap(int,int);
void (*swap)(int,int);
前者是声明一个函数swap,返回值为指向void类型的指针
后者是声明一个指向函数的指针,这个指针是 swap
//参考p187/c++谭
引用作为函数参数
声明时:void swap(int &, int &); //参考p194/c++谭
调用时: swap(i, j); //i,j可以是变量也可以是引用类型
结构体类型变量作参数
声明时:void swap(struct student stu1);
调用时: swap(stu);//stu是结构体student的一个变量
类对象作参数
声明时:void swap(student stu1);//student是一个以定义的类
调用时: swap(stu); //stu是类student 一个对象
四、定义字符指针
Char *str = “I Love China”; //str是指针,系统将首元素I的地址
//给str。当然在字符串后面自动加‘\0’
原文链接: https://www.cnblogs.com/jnje/archive/2011/03/11/1981901.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/22211
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!