【发布时间】:2016-11-29 06:59:25
【问题描述】:
有人问我一个关于刺痛的作业的问题。问题问:
鉴于声明:char myString[16];
以下哪项陈述是有效的?如果语句无效,请提供正确的语法。
a. strcpy(myString, “Hello the world”);
b. strlen(myString);
c. myString = “Marylane”;
d. cin.getline(myString, 80);
e. cout << myString;
f. if (myString >= “Nice day”)
cout << myString;
g. myString[6] = ‘t’;
我已经能够编译如下几个部分:
/*b.*/ int len;
len = strlen(myString);
/*c.*/ strcpy(myString, “Hello the world”);
/*f.*/ int strTest;
strTest = strcmp(myString, "Nice day");
if (strTest < 0)
cout << myString << endl;
else
{
cout << "No Dice" << endl;
}
我认为 'g' 是无效的,因为我认为你不能使用赋值运算符,但我得到了它的编译。谁能解释一下?
【问题讨论】:
-
为什么不能使用赋值运算符?在这种情况下,您只是将原始值分配给内存位置。
-
您不能分配给数组,但可以分配给数组中的单个元素(除非它本身就是一个数组)。
-
您认为将字符串中的第七个字符设置为
t的正确方法是什么? -
上面显示的方式对我来说很有意义。我刚刚注意到在我们的书中它说,“因为数组上不允许进行聚合操作,例如赋值和比较,所以下面的语句是不合法的:studentName="Lisa Johnson";”这与上面的有什么不同?