今天学C的时候遇到不能理解的的东西了,是来自《C Primer Plus》的下面程序清单7.7
!inword 为什么与 inword==false
先前bool inword=false;* 不应该令inword 为假了吗,**! inword** 应该是真才对啊
关于这个书上的说法我也是不怎么理解
希望各位大触能浅显易懂解释一下这句话,补充一下这方面的基础知识(┬┬﹏┬┬)
//程序清单7.7
#include<stdio.h>
#include<ctype.h>
#include<stdbool.h>
#define STOP '|'
int main(void)
{
char c;
char prev;
long n_chars = 0L;
int n_lines = 0;
int n_words = 0;
int p_lines = 0;
bool inword = false;
printf("Enter text to be analyzed (| to terminate):\n");
prev = '\n';
while ((c = getchar()) != STOP)
{
n_chars++;
if (c == '\n')
n_lines++;
if (!isspace(c) && !inword)
{
inword = true;
n_words++;
}
if (isspace(c) && inword)
inword = false;
prev = c;
}
if (prev != '\n')
p_lines = 1;
printf("characters = %ld, words = %d, lines = %d, ",
n_chars, n_words, n_lines);
printf("partial lines = %d\n", p_lines);
return 0;
}
就我一直认为**!inword为真搞不懂为什么还能进入if**(╯°□°)╯︵ ┻━┻

