1.实现mystrcpy
#include <stdio.h>
char *mystrcpy(char *dst,char *src)
{
char *tmp=dst; //保存首地址
while(*src!='\0'){
*dst++=*src++;
} //复制字符串
*dst='\0'; //字符串结尾要加'\0'
return tmp; //返回首地址
}
记住步骤:1.保存首地址
2.复制字符串
3.字符串结尾加'\0'
4.返回首地址
2.switch:
记得要加default!!!
3.设计一个函数getmemory,申请100个字节的内存,并将该内存传递回来
#include <stdio.h>
#include <stdlib.h>
void *getmemory(char **p)
{
*p=(char *)malloc(100);
}
int main(){
char *a;
getmemory(&a);
printf("%p\n",a);
}
要通过函数改变变量的值就需要给函数传递变量的地址,给变量申请空间就是给变量地址申请值,地址是一级指针,所以要传二级指针。
4.printf
printf是以"行"来做缓冲区来刷新stdout的,如果遇到\n会强制立即刷新.否则刷新可能会延迟.因为printf中没有包含\n,内核决定满一行再刷新,而此时程序由于调用accept或recvfrom这类会block的api函数,造成屏幕一直显示不出来,除非收到了tcp连接请求或数据包,系统才会重新决定是否刷新屏幕.