C语言函数
创建函数
函数返回值类型 函数名(函数参数)
{
return 函数返回值;
}
int ReturnInt()
{
return 1;
}
double ReturnDouble()
{
double d=1.11;
return d;
}
char ReturnChar()
{
return 'A';
}
void 函数名()
{
return ;
printf("永远不会执行");
}
int Max(int a,int b)
{
return a>b?a:b;
}
Max(1,2);
int a=1,b=3;
Max(a,b);
- 注意
- 函数返回值是函数调用表达式代表值
- 函数返回值是一个值,不能充当左值,即不能写成类似Max(aa, bb) = 101;的形式
函数传参
#include <stdio.h>
int Max(int a, int b)
{
return a > b ? a : b;
}
void printArray(int num[], int arrayNum)
{
for (int i = 0; i < arrayNum; i++)
{
printf("%d\t", num[i]);
}
printf("\n");
}
void print(int num)
{
printf("\nnum=%d\n", num);
}
void printArray2D(int array[][4], int row, int cols)
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < cols; j++)
{
printf("%d\t", array[i][j]);
}
printf("\n");
}
}
int main()
{
Max(3, 4);
int array[3] = { 1,2,3 };
printArray(array, 3);
int array2D[3][4] = { {1},{2},{3} };
printArray2D(array2D, 3, 4);
return 0;
}
#include <stdio.h>
#include <string.h>
int my_strlen(char str[])
{
int count = 0;
while (str[count] != '\0')
count++;
return count;
}
int main()
{
char str[] = { "ILoveyou" };
printf("%d\t", my_strlen("ABC"));
printf("%d\t", my_strlen(str));
printf("%zd\t", strlen(str));
print('A');
return 0;
}
#include<stdio.h>
int my_strcmp(const char* str1, const char* str2)
{
int i=0;
while(str1[i]!='\n'|| str2[i] != '\n')
{
if (str1[i] > str2[i])
{
return 1;
}
else if(str1[i] < str2[i])
{
return -1;
}
i++;
}
return 0;
}
int main()
{
char a[10] = { "iloveyou" };
char b[10] = { "imessyou" };
printf("%d",my_strcmp(a, b));
return 0;
}
#include<stdio.h>
void my_strcat(char* str1, const char* str2)
{
int i = 0;
int j = 0;
while (str1[i] != '\0')
{
i++;
}
while (str2[j] != '\0')
{
str1[i] = str2[j];
i++;
j++;
}
str1[i] = '\0';
}
int main()
{
char a[20] = { "iloveyou" };
char b[10] = { "imessyou" };
my_strcat(a, b);
printf("%s", a);
return 0;
}
函数的嵌套调用
#include<stdio.h>
int recursion(int n)
{
if (n == 1)
{
return 1;
}
else
{
return n + recursion(n - 1);
}
}
int main()
{
int n;
printf("请输入阶层个数:");
scanf_s("%d", &n);
printf("%d",recursion(n));
return 0;
}