目录
两个外国人的网址
www.cplusplus.com //外国人的CSDN
en.cppreference.com //外国人的c语言查询网
strcpy的用法
input:
char str1[] = " Sample string";
char str2[40] = " S B ";
char str3[40];
strcpy(str2, str1);
strcpy(str3, " copy successful");
output:
str1 : Sample string
str2 : Sample string
str3 : copy successful
memset的用法
int main()
{
char arr[] = "hello world";
memset(arr, '*', 5);
printf(" %s\n",arr);
// ***** world
return 0;
}
//换位置(地址的使用)
#include <stdio.h>
void Swap1(int* px, int* py)
{
int tmp = 0;
tmp = *px;
*px = *py;
*py = tmp; //若要在函数里改变值,需要传址
}
int main()
{
int num1 = 1;
int num2 = 2;
Swap1(&num1, &num2);
printf("%d %d", num1, num2);
return 0;
}
传址调用:
●传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。
●这种传参方式可以让函数和函数外边的变量建立起正真的联系, 也就是函数内部可以直接操
作函数外部的变量。
函数二分法查找数字下标
#include <stdio.h>
int Search(int arr[], int k, int sz)
{
int left = 0;
int right = sz - 1;
while (left <= right) //int Han_Shu(char* str)
{ //str++
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 = Search(arr, k, sz);
if (ret == -1)
{
printf("找不到指定数字\n");
}
else
{
printf("指定数字下标是:%d\n", ret);
}
return 0;
}
函数的嵌套调用
#include <stdio.h>
void new_line()
{
printf("hehe\n");
}
void three_line()
{
int i = 0;
for (i = 0; i < 3; i++)
{
new_line();
}
}
int main()
{
three_line();
return 0;
}
链式访问
#include <stdio.h>
int main()
{
printf("%d", printf("%d", printf("%d", 43)));//printf("%d",43)---2
//结果是啥?--4321
return 0;
}
函数的定义与声明
//一般把函数的声明放入头文件,开始时要引入头文件#include"xxxx.h"
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;
}
简单的递归
void print(int n)
{
if (n > 9)
{
print(n / 10);
}
printf("%d ", n % 10);
}
#include <stdio.h>
int main()
{
unsigned int num = 0;
scanf_s("%d", &num);
print(num);
return 0;
}
/*递归的两个必要条件
存在限制条侏,当满足这个限制条件的时候,递归便不再继续。
●每次递归调用之后越来越接近这个限制条件。
*/