【发布时间】:2013-07-15 12:27:06
【问题描述】:
我正在使用 char* 数组将字符串的一部分复制到另一个 char* 数组中,我想知道是否这样做
do {
*pntr1++ = *pntr2++
} while (*pntr2 != '\0');
和
是一样的do
{
*indPtr = *wordPtr;
indPtr++;
wordPtr++;
} while (*wordPtr != '\0');
或者我最终会跳过使用第一种方法的索引吗?
【问题讨论】:
-
你试过了吗?发生了什么?
-
@RogerRowland 在可能出现未定义行为的情况下,在一个特定实例中依赖“发生了什么”可能是个坏主意。
-
是的,两者都是一样的:我更喜欢
while(*pntr1++ = *pntr2++); -
@DavidBrown 你对我的问题读得太多了。一个简单的测试将显示任何固有的差异,除了在这两种情况下都没有对输入进行空检查外,没有涉及真正的“未定义行为”。
标签: c++ loops pointers increment