demo_2_28


#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
//int main()
//{
// int i = 0;
// for (i = 0; i < 100; i++)
// {
// printf("%d ", i);
// }
// system("pause");
// return 0;
//}

//int main()
//{
// int i = 0;
// int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// for (i = 0; i <= 12; i++)
// {
// printf("hehe\n");
// arr[i] = 0;
// }
// system("pause");
// return 0;
//}

//int Add(int x, int y)
//{
// int c;
// c = x + y;
// return c;
//}
//int main()
//{
// printf("hehe\n");
// int a = 20;
// int b = 10;
// int c = Add(a, b);
// return 0;
//}

//int main()
//{
// {
// int tmp = 0;
// printf("tmp=%d\n", tmp);
// }
// int arr[10] = { 0 };
// int i = 0;
// for (i = 0; i < 12; i++)
// {
// arr[i] = i;
// }
// return 0;
//}

//int main()
//{
// int i = 0;
// int sum = 0;//保存最终结果
// int n = 0;
// int ret = 1;//保存n的阶乘
// scanf("%d", &n);
// for (i = 1; i <= n; i++)
// {
// int j = 0;
// ret = 1;
// for (j = 1; j <= i; j++)
// {
// ret *= j;
// }
// sum += ret;
// }
// printf("%d\n", sum);
// system("pause");
// return 0;
//}

//int main()
//{
// int i = 0;
// int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// printf("%p\n", arr);
// printf("%p\n", &i);
// for (i = 0; i <= 12; i++)
// {
// printf("hehe\n");
// arr[i] = 0;
// }
// system("pause");
// return 0;
//}

//模拟实现库函数 - strcpy
//void my_strcpy(char* dest,char* src)//不需要返回
//{
// while (*src!='\0')
// {
// *dest = *src;
// src++;//指针++向后走一步
// dest++;
// }
// *dest = *src;//拷贝的是\0
//}
//优化一:
//void my_strcpy(char* dest, char* src)
//{
// while (*src != '\0')
// {
// *dest++ = *src;
// }
// *dest = *src;
//}
//优化二:
//void my_strcpy(char* dest, char* src)
//{
// while (*dest++ = *src)
// {
// ;
// }
//}
//优化三:
//void my_strcpy(char* dest, char* src)
//{
// //进行一个合理的判断
// if (dest != NULL && src != NULL)
// {
// while (*dest++ = *src)
// {
// ;
// }
// }
//}
//优化四(最好):
//void my_strcpy(char* dest, char* src)
//{
// assert(dest != NULL);//断言
// assert(src != NULL);//断言
// while (*dest++ = *src++)
// {
// ;
// }
//}
//优化五:
//char* my_strcpy(char* dest, const char* src)
//{
// char* ret = dest;
// assert(dest != NULL);//断言
// assert(src != NULL);//断言
// //把src指向的字符串拷贝到dest指向的空间,包含'\0'
// while (*dest++ = *src++)
// {
// ;
// }
// return ret;
//}
//int main()
//{
// //strcpy - 字符串拷贝
// char arr1[] = "##################";
// char arr2[] = "bit";
// printf("%s\n", my_strcpy(arr1, arr2));//链式访问
// system("pause");
// return 0;
//}
//注意:
//1.分析参数的设计(命名,类型),返回值类型的设计
//2.这里讲解野指针,空指针的危害
//3.assert的使用,这里介绍assert的作用
//4.参数部分const的使用,这里讲解const修饰指针的作用
//5.注释的添加

//int main()
//{
// const int num = 10;
// int *const p = #//用const修饰指针变量
// //const放在指针变量的 * 左边时,修饰的是 *p 也就是说不能通过 p 来改变*p(num)的值
// //const放在指针变量的 * 右边时,修饰的是指针变量p本身,p不能被改变
// *p = 20;
// printf("%d\n", num);
// system("pause");
// return 0;
//}

//int my_strlen(const char *str)
//{
// int count = 0;
// assert(str != NULL);//断言,保证指针的有效性
// while (*str != '\0')
// {
// count++;
// str++;
// }
// return count;
//}
//int main()
//{
// char arr[] = "abcdef";
// int len = my_strlen(arr);
// printf("%d\n", len);
// system("pause");
// return 0;
//}

int Add(int x, int y)
{
return x + y;
}
int main()
{
int a = 10;
int b = 20;
int c = 0;
c = Add(a, b);
printf("c=%d\n", c);
system("pause");
return 0;
}