gpt4 book ai didi

c++ - 为什么我的 strCopy 实现有效?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:56 26 4
gpt4 key购买 nike

这里是strCopy的一个实现

void strcopy2(char *dst, char const *src){
while ((*dst++ = *src++))
;
}

我们的教授要求我们在不使用指针的情况下重现这段代码,所以我想出了以下函数:

void strcopy(char dst[], char const src[]){
size_t i = 0;
while (dst[i] = src[i++])
;
}

它运行良好,但我意识到,在引擎盖下函数必须仍然使用指针,因为我们无处返回任何值。换句话说,我虽然最后一个函数会使用按值传递,但显然不是这样。那么在水下发生了什么,这两种方法实际上有什么区别吗?

最佳答案

不只是在幕后……dstsrc,尽管看起来很像,但实际上都是指针!参数列表中的 [] 语法是语法糖(或者实际上是语法胡椒),但它在骗你;这些是实数的 char* dstchar const* src

8.3.5/5 [dcl.fct] 功能:

After determining the type of each parameter, any parameter of type “array of T” or of function type T is adjusted to be “pointer to T”.

关于c++ - 为什么我的 strCopy 实现有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40105746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com