2014年4月1日
摘要: C语言通过&和*操作符来操作数据的地址,但它并没有提供一个用一般的方式来操作代码的地址。然而,C语言并没有完全切断程序员操作代码地址的可能,它提供了一些"受限制的"方式来操作代码的地址。之所以说这些方式是"受限制的",那是因为这些方式并不像操作数据地址那样自由和灵活。在C语言中,指针变量也可以指向一个函数。我们已经知道代码也是有地址的,一个函数在编译时会被分配给一个入口地址,这个入口地址就是该函数中第一条指令的地址,这就是该函数的指针。当调用一个函数时除了通过函数名来调用以外,还可以通过指向该函数的指针变量来调用。一个指向函数的指针其初始值不能为 阅读全文
posted @ 2014-04-01 20:03 故乡的云111 阅读(355) 评论(0) 推荐(0)
2014年3月21日
摘要: 一,百度百科上的实现方法: 1 /********************** 2 * C语言标准库函数strcpy的一种典型的工业级的最简实现 3 * 返回值:目标串的地址。 4 * 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。 5 * 参数: 6 * strDestination 目标串 7 * s 8 9 /*10 GNU-C中的实现(节选):11 */12 char* strcpy(char *d, const char *s)13 {14 char *r=d;15 while((*d++=*s++));//疑似... 阅读全文
posted @ 2014-03-21 09:37 故乡的云111 阅读(489) 评论(0) 推荐(0)
摘要: Strcat函数原型如下:1234567891011121314151617181920//将源字符串加const,表明其为输入参数char*strcat(char*strDest,constchar*strSrc){//后文returnaddress,故不能放在assert断言之后声明addresschar*address=strDest;assert((strDest!=NULL)&&(strSrc!=NULL));//对源地址和目的地址加非0断言while(*strDest)//是while(*strDest!=’\0’)的简化形式{//若使用while(*strDest 阅读全文
posted @ 2014-03-21 08:42 故乡的云111 阅读(174) 评论(0) 推荐(0)