学习心得体会:
1.//F5开始调试,通常使用F5跳到想要的断点处和F9设置断点,配合使用。
//F10逐过程,可以跳过有些函数。F11逐语句。
2.在主函数定义的变量,在循环中使用完后数值依然存在,所以要求阶乘的话,要在循环内重置变量。
//int main()
//{
// int n = 0;
// scanf("%d", &n);//3
// //计算n的阶乘
// int i = 0;
// int ret = 1;
// int j = 0;
// int sum = 0;
// //1+2+6 = 9
// for (j=1; j<=n; j++)
// {
// ret = 1;//所以这里要重置。
// for (i = 1; i <= j; i++)
// {
// ret = i;//第二次这里为2,因为整个大循环还没有完,所以ret还在。
// }
// sum += ret;
// }
//
// printf("%d\n", sum);
//
// return 0;
//}
.3.//i和arr是局部变量 , 局部变量是放在栈区上的,栈区上内存的使用习惯是:先使用高地址处的空间,在使用低地址处的空间。数组随着下标的增长,地址由低到高变化,如果i和arr之间的空间适合的话,就又可能使用arr数组向后越界访问到了i,造成i的改变,最终死循环。
//int main()
//{
// int i = 0;
// int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//
//
// //printf("%p\n", &i);
// //printf("%p\n", &arr[9]);
//
// for (i = 0; i <= 12; i++)//越界
// {
// arr[i] = 0;
// printf(“hehe\n”);
// }
//
// return 0;
//}
4.在使用指针的时候,要记住使用assert,这个的作用是断言,防止指针为空,程序崩溃。可以直接报出哪一行代码出现了问题。
// //assert(dest != NULL);//断言
// //assert(src != NULL);//断言
// assert(dest && src);//断言
5.const 修饰变量,变量不能被修改。
const修饰指针,放在左边,修饰的是指针所指的变量内容不能被改变,但是指针可以指向其他变量。
const放在*右边,修饰的是指针变量,指针所指的变量内容可以改变,但是指针不能指向其他变量。
6.strcpy(arr1,arr2) 把arr2数组的字符串拷贝给arr1,包含arr2中的/0也都一起拷贝过去了。实现该函数时要注意该函数返回的是arr1数组。
7.strlenth计算数组的长度。
编程实用技巧总结
最新推荐文章于 2022-08-08 14:36:11 发布