github代码上传
依次点击:右上角+号—>new repository—>(填完内容,新手默认)右下角绿键 create repository—>add file—>upload file—>把文件全部拖过去—>左下绿键commit changes
就OK啦,快点分享BUG(bushi),得到更多绿点点吧!
内存的简单了解
堆:局部变量,形式参数,函数调用
栈:动态内存,malloc/free,realloc,calloc
静态:全局变量,静态变量
(栈区使用:高地址 数组下标地址由低到高)
数据结构的简单了解
线性数据结构
顺序表123456
链表1-2-3-4-5-6
栈 高地址,先进来后出【1】【2】【3】【4】【5】 低地址,后进先出 进:压栈 出:出栈
队列
树形数据结构
二叉树
图
调试代码的简单了解
快捷键:F5 :运行到断电处 ;F5+shift:退出调试 ; F5+CORL:跳过调试,直接运行
F10:一个个过程的运行 ;F11 一句句的运行(相比F10,ta运行的更细,例如可以进入函数)
监视窗口:可以自己选择观测的变量
自动窗口,局部变量:系统把变量都显示出来(局部变量只能显示某个局部的变量)
visual运行后一闪而过的解决方案:
依次点击:项目—>属性—>链接器—>系统—>字系统—>控制台
代码编写实现拷贝功能(方案由上到下依次完善)
方案一 调用函数取得拷贝功能
void my_strcpy(char* dest, char* src)
{
while (*src != '\'0')
{
*dest = *src;
src++;
dest++;
}
*dest = *src;
}
int main(){
char arr1[]
char arr2[] = "bit";
my_strcpy(arr1,arr2);
printf("%s\n", arr2);
return 0;
}
方案二 精简了代码
void my_strcpy(char* dest, char* src)
{
while (*dest++ = *src++)
}
int main()
char arr1[]
char arr2[] = "bit";
my_strcpy(arr1,arr2);
printf("%s\n", arr1);
return 0;
方案三 if判断的添加:防止用户传空指针过去
void my_strcpy(char* dest, char* src)
{
if (dest != NULL && src != NULL)
{
while (*dest++ = *src++)
}
}
int main()
{
char arr1[]
= "bit";
char arr2[]
my_strcpy(arr1, NULL);
printf("%s\n", arr1);
return 0;
}
方案四 断言的添加:在防范的基础上有了告知用户错误和提醒错误位置的功能
#include <assert.h>
void my_strcpy(char* dest, char* src)
{
assert(dest!=NULL);//断言
assert(shc != NULL);//断言
while(*dest++ = *src++)
}
int main()
{
char arr1[]
= "bit";
char arr2[]
my_strcpy(arr1, NULL);
printf("%s\n", arr1);
}
方案五 const的添加:保证了需要拷贝的文件不会被破坏
#include <assert.h>
void my_strcpy(char* dest,const char* src)
{
assert(dest!=NULL);//断言
assert(shc != NULL);//断言
while(*dest++ = *src++)
}
int main()
{
char arr1[]
= "bit";
char arr2[]
my_strcpy(arr1, NULL);
printf("%s\n", arr1);
}
方案六 使得函数从空类型转变成返回字符类型,便于主函数关于该拷贝函数的使用
char* my_strcpy(char* dest, const char* src){
char* ret = dest;
assert(dest!=NULL);//断言
assert(src!= NULL);//断言
while (*dest++ = *src++)
}
return ret;
}
int main()
{
char arr1[]
= "#########";
char arr2[]
= "bit";
printf("%s\n",my_strcpy(arr1,arr2));
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);
return 0;
}