1,函数

#include <stdio.h>

#include <string.h>

#include <stdlib.h>


//

int Add(int x, int y)

{

int z = 0;

z = x + y;

return z;


}

int main()

{

int a = 10;

int b = 20;

int sum = Add(a, b);

printf("%d\n", sum);

return 0;


}

2,牢记字符串结束后有\0在作为结束标志

strcpy函数使用

#define _use_c

#include <stdio.h>

#include <string.h>

int main()

{

char arr1[] = "bit";

char arr2[20] = "###########";

strcpy(arr2,arr1);//---括号里第一位放目的地,第二位放要拷贝的内容

//strcpy - string copy - 字符串拷贝

//strlen - string length - 字符串长度有关

printf("%s\n", arr2);

return 0;



}

3,memset函数

#include <stdio.h>

#include <string.h>

//

//memset

//memory -- 内存  set -- 设置


int main()

{

char arr[] = "hello world";

memset(arr,'*',5);

printf("%s\n", arr);


return 0;



}

“*”ASCII码值

B站C语言第十课_#include

4.自定义函数

例子1

//定义函数

int get_max(int x, int y)

{

if(x>y)

 return x;

else

 return y;

}


int main()

{

int a = 10;

int b = 20;

//函数的使用场景

int max = get_max(a, b);

printf("max = %d\n", max);

return 0;

}

例子2

/*void Swap1(int x, int y)  //不能完成任务

{

int tmp = 0;

tmp = x;

x = y;

y = tmp;

}*/

void Swap2(int* pa, int* pb)

{

int tmp = 0;

tmp = *pa;

*pa = *pb;

*pb = tmp;

}

int main()

{

int a = 10;

int b = 20;

//int tmp = 0;

printf("a=%d b=%d\n", a, b);

//Swap1(a, b);

Swap2(&a, &b);

/*tmp = a;

a = b;

b = tmp;*/

printf("a=%d b=%d\n", a, b);


return 0;

}


/*int main()

{

int a = 10;

int* pa = &a;//pa指针变量

*pa = 20;//解引用操作

printf("%d/n", a);

return 0;


}*/

传值调用

传值址调用

例子1

//是素数返回一,不是素数返回0

#include <math.h>

int is_prime(int n)

{

int j = 0;

for(j=2;j<=sqrt(n);j++)

{

 if(n%j==0)

  return 0;

}

return 1;

}

int main()

{

//打印100-200之间的素数

int i = 0;

for(i=100; i<=200; i++)

{

 if(is_prime(i) ==1)

  printf("%d\n", i);

}

return 0;


}

例子2

int  is_leap_year(int y)

{

if((y%4==0&&y%100!=0) ||(y%400==0))

 return 1;

else

 return 0;

}


int main()

{

int year=0;

for(year=1000; year<=2000; year++)

{

 //判断year是否为闰年

 if(1 == is_leap_year(year))

 {

  printf("%d ",year);

 }


}


}

例子3

#include <stdio.h>

int binary_search(int arr[], int k, int sz)

{

//算法的实现

 

int left = 0;

int right = sz-1;


while(left<=right)

{

 int mid = (left+right)/2;//中间元素的下标

 if(arr[mid] < k)

 {

  left = mid+1;

 }

 else if(arr[mid] > k)

 {

  right = mid-1;

 }

 else

 {

  return mid;

 }


}

return -1;

}

int main()

{

//二分查找

//在一个有序数组中查找具体的某个数

int arr[] = {1,2,3,4,5,6,7,8,9,10};

int k = 7;

int sz = sizeof(arr)/sizeof(arr[0]);

int ret = binary_search(arr, k, sz);

if(ret == -1)

{

 printf("找不到指定的数字\n");

}

else

{

 printf("找到了,下标是:%d\n", ret);

}

return 0;

}

例子4

void Add(int* p)

{

(*p)++;

}

int main()

{

int num = 0;

Add(&num);

printf("num = %d\n", num);//1

Add(&num);

printf("num = %d\n", num);//2

Add(&num);

printf("num = %d\n", num);//2

return 0;

}

5,函数的嵌套调用和链式访问

函数和函数之间可以有机的组合的

(1)嵌套调用

(2)链式访问

例子1

#include <string.h>

int main()

{

int len = 0;

len = strlen("abc");

//1

printf("%d\n", len);

//2

printf("%d\n", strlen("abc"));

return 0;


}

例子2

int main()

{

printf("%d", printf("%d", printf("%d",43)));


return 0;


}

B站C语言第十课_嵌套_02

调用函数

//函数声明

int Add(int x, int y);

int main()

{

int a =10;

int b = 20;

int sum = 0;

//函数调用

sum = Add(a, b);

printf("%d\n", sum);

return 0;

}


//函数的定义

int Add(int x, int y)

{

int z = x+y;

return z;


}