这是strCopy的一个实现
void strcopy2(char *dst, char const *src){
while ((*dst++ = *src++))
;
}
Run Code Online (Sandbox Code Playgroud)
我们的教授要求我们在不使用指针的情况下重现这段代码,所以我想出了以下函数:
void strcopy(char dst[], char const src[]){
size_t i = 0;
while (dst[i] = src[i++])
;
}
Run Code Online (Sandbox Code Playgroud)
它运行良好,但我意识到,在引擎盖下,函数必须仍然使用指针,因为我们无处可返回任何值.换句话说,我虽然最后一个函数会使用pass by value但显然并非如此.那么在水下发生了什么,这两种方法之间究竟有什么区别吗?
Lig*_*ica 14
不只是在引擎盖......既dst和src,尽管外表,实际上是指针!该[]参数列表语法是语法糖(或语法辣椒真的),但它骗你; 这些都char* dst与char const* src实数.
8.3.5/5 [dcl.fct]功能:
在确定每个参数的类型之后,将"T数组"或函数类型T的任何参数调整为"指向T的指针".
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |