C语言(三)
一、函数
1.调用有参函数
开头声明:
float max(floatx,floaty);
结尾解释:
float max(floatx,floaty)
{
return(x>y?x:y);
}
2.调用无参函数(与有参函数区别是不会返回值)
开头声明:
void a();
结尾解释:
void a()
{
printf("xxx\n")
}
3.函数的嵌套
4.函数的递归
二、指针
1.指针变量与普通变量
指针=&变量
*指针=指针指定的变量的值
注:指针方向可改变,注意关联方法。
2.指针变量与一维数组
指针=&数组名[某数]
指针+i=&数组名[某数+i]
*指针=指针指定的变量的值
&数组名[某数]=数组名+某数
数组名[某数]=*(数组名+某数)
3.指针变量与一维数组相关函数
函数声明:数组名[]改成*p
函数解释:数组名[i]改成*(p+i)
函数使用:数组名改成q(使用前需先关联)
形参由数组名变为指针变量:运用函数声明和函数解释
实参由数组名变为指针变量:运用函数使用
4.指针变量与二维数组
指针=&数组名[数a][数b]
指针+i=&(数组名[数a][数b]后面第i个元素)
*指针=指针指定的变量的值
&数组名[数a][数b]=数组名[数a]+数b=数组名[0]+a*列数+b
数组名[数a][数b]=*(数组名[数a]+数b)
5.指针变量与二维数组相关函数
形参由数组名变为指针变量:
函数声明:数组名[][某数]改成*p
函数解释:数组名[i][j]改成*(p+i*列数+j)
函数使用:数组名改成*数组名
实参由数组名变为指针变量:
函数声明:数组名[][某数]改成*p
函数解释:数组名[i][j]改成*(p+i*列数+j)
函数使用:数组名改成q(使用前需先关联)
6.指针向量指向二维数组的行变量
7.用指向二维数组行变量的指针变量做形参
函数声明:数组名[][某数]改成(*p)[某数]
函数解释:数组名[i][j]改成*((p+i)+j)
8.指针变量与字符串
指针=&数组名[某数]
指针+i=&数组名[某数+i]
*指针=指针指定的字符
&数组名[某数]=数组名+某数
数组名[某数]=*(数组名+某数)
9.指针变量与字符串相关函数
函数声明:数组名[]改成*p
函数解释:数组名[i]改成*(p+i)
函数使用:数组名改成q(使用前需先关联)
形参由数组名变为指针变量:运用函数声明和函数解释
实参由数组名变为指针变量:运用函数使用
10.指针变量与函数
11.返回指针值的函数
12.指针与一维二维数组的数值关系
&a[i]=a+i
a[i]=*(a+i)
三、结构体
1.定义结构体
struct student
{
int xuehao;
char name[30];
char xingbie;
float chengji;
};
注意最后的分号!!!