<分区>
这个程序应该遍历一个由 0 和 1 组成的数组,并计算其中有多少个 0、1 和所有字符的组合。 但是,循环内的 print 语句会打印出一堆“48”和“49”。 即使字符数计算正确,似乎它不是从“if 语句”中的指针中提取值,而是获取内存地址。
代码本身:
#include <stdio.h> /* using printf, gets, BUFSIZ */
int main(int argc, char *argv[])
{
char input[BUFSIZ];
int n;
char *labelPtr;
int zeroCount=0;
int oneCount=0;
n=0;
gets(input);
while(input[n])
{
labelPtr=&input[n];
printf("%d \n", *labelPtr);
if (*labelPtr==0)
{
zeroCount++;
}
if(*labelPtr==1)
{
oneCount++;
}
n++;
}
printf("The number of characters is %d \n", n);
printf("The number of zeros is %d \n", zeroCount);
printf("The number of ones is %d \n", oneCount);
}