LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: dimensioll

一般去应聘Linux C程序员会被问到哪些问题?

[复制链接]
 楼主| 发表于 2006-7-4 16:23:26 | 显示全部楼层
有谁知道char *strcpy(char *dest, const char *src)的实现吗?
回复 支持 反对

使用道具 举报

发表于 2006-7-4 22:18:54 | 显示全部楼层
To dimensioll :
    似乎返回值都是一份对return后面对象的拷贝啊,比如返回int a,是拷贝了a的值,传回去,如果那样的话,a也是局部变量,同样会销毁……
    不知我说的对不对,望高人指正:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-4 22:58:23 | 显示全部楼层
返回指针是不可以的,因为退出该函数后局部变量不复存在,那指针指到哪里去呢?
你说的int a;……return a;是可以的,因为返回的是数值,复制过去以后就是副本,但没关系。
回复 支持 反对

使用道具 举报

发表于 2006-7-5 17:23:57 | 显示全部楼层
To dimensioll :
    你说的对,我开始搞混了,呵呵
对于你说的strcpy函数,他返回的应该是指向外部变量(相对于该函数而言)的指针,即是dest参数,而不是函数本身创建的一个buffer。
而对于类似fopen函数,返回的(FILE *)虽不是函数参数的指针,但是是一个(可以说)全局的文件对象。
他们都不是函数本身栈中创建的。
    看看我说的对不对?
回复 支持 反对

使用道具 举报

发表于 2006-7-5 17:29:23 | 显示全部楼层
你说的对,我开始搞混了,呵呵
对于你说的strcpy函数,他返回的应该是指向外部变量(相对于该函数而言)的指针,即是dest参数,而不是函数本身创建的一个buffer。
而对于类似fopen函数,返回的(FILE *)虽不是函数参数的指针,但是是一个(可以说)全局的文件对象。
他们都不是函数本身栈中创建的。
    看看我说的对不对?
回复 支持 反对

使用道具 举报

发表于 2006-7-5 20:00:21 | 显示全部楼层
好像标识为sitatic的内部变量也可以将地址传出,但这类函数似乎不好重入……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表