void copy (char *source, char *dest) {
while (*dest++ = *source++);
}
由*source
指向的字符被复制到*dest
指向的字段。对于下一次迭代,每个字符指针都指向内存中的下一个字段,是吗?
这个循环什么时候实际停止?我能想到的唯一条件是没有剩余的内存空间了,但那么函数必须以错误终止,不是吗?
我完全是C语言的新手,请原谅我的简单问题。
void copy (char *source, char *dest) {
while (*dest++ = *source++);
}
由*source
指向的字符被复制到*dest
指向的字段。对于下一次迭代,每个字符指针都指向内存中的下一个字段,是吗?
这个循环什么时候实际停止?我能想到的唯一条件是没有剩余的内存空间了,但那么函数必须以错误终止,不是吗?
我完全是C语言的新手,请原谅我的简单问题。
char
是整型。以下是整型的条件解释:
0 -> false
Anything else -> true
在C中,“字符串”是以null结尾的(意思是0
或'\0'
),当它到达字符串末尾时便停止。
一个赋值的"结果"就是右边的值。所以,x=1;
事实上是有一个返回值的;在这种情况下,返回的值是 '1'。
你的代码会复制字符,直到遇到 source
字符串末尾的终止符0为止。
0
时,请返回已翻译的文本。 - Daniel A. White\0
可以隐式转换为整数0
,被视为false
。类型为a = b
的表达式将计算为b
。 - Tobias Brandt