strcmp库函数源码心得

明天要去参加实习面试,复习的时候偶然看到库函数实现,觉着应该会问到,就看了下。发现自己其实对很多常用函数根本不懂其源码实现过程,所以明显错误就一犯再犯。

strcpy的源码如下

char * __cdecl strcpy(char * dst, const char * src)
{
        char * cp = dst;
 
        while( *cp++ = *src++ )
                ;               /* Copy src over dst */
 
        return( dst );
}

这个函数非常简洁,所以很多细节就要使用者注意了,总结如下:

1、一定要保证dst空间大于src

2、src指针一定要有‘\0’空字符结束标志,否则要被复制的内容是从src起始地址一直到dst起始地址,大小具有任意性,如下面这段代码就是错误的!

char string[10],str[10];
	int i;
	for (int i=0;i<5;i++)
	{
		str[i]='a';
	}
	strcpy(string,str);


你可能感兴趣的:(C++,源码,面试,指针,strcpy)