一个C++的字符串数组循环赋值问题

2025-02-26 20:05:30
推荐回答(3个)
回答1:

假如执行 buildstr('a', 6);
那么函数中 pstr 指向数组的长度为 7,有效索引值是 0~6。
第四行相当于pstr[6] = '\0';
while语句相当于
while (n>0)
{
n--;
pstr[n] = c; // fill rest of string
}
所以第一次执行循环相当于 pstr[5] = 'a'; 而不是 pstr[6]='a'。
注意后置的自减运算符是“先使用,后自减”。

回答2:

大哥,pstr[n] 和 n本身是两回事!

比如:假设初始 n = 10
那么 pstr[10] = 0;
然后 n--之后,就是 n = 9
while(9 > 0) 不就可以执行了吗?

回答3:

题目错了爸!!!!!!!