【发布时间】:2013-01-01 16:56:55
【问题描述】:
在下面的代码中,str1[i] && str2[i]; 和 count1[str1[i]]++; 语句究竟做了什么?
char str1[4]="rate";
char str2[4]="tear";
int count1[256] ;
int count2[256] ;
int i=0;
for (i = 0; str1[i] && str2[i]; i++)
{
count1[str1[i]]++;//count1['g']++what does that mean ?
count2[str2[i]]++;
}
【问题讨论】:
-
后者似乎确实在计算字符的出现次数。
-
int count1[256] ;这只有在char是 8 位时才有效,这是一个足够常见的假设,而无符号是一个不常见的假设。 -
int str1[]="rate";不起作用。只有 char 数组可以用文字字符串初始化。 -
顺便说一下,您为什么不阅读
&&运算符? -
@PascalCuoq:所以它可能应该是:
int str1[] = L"rate";。
标签: c syntax boolean-logic and-operator