这不是一本适合从头到尾'学习'的C语言教材,而是一本值得反复'阅读'的经典。它由C语言的共同作者亲自执笔,篇幅极薄,却把指针、数组、结构、输入输出等核心概念讲得透彻而克制。读者反复提及的,是它'Less is more'的凝练——薄得让人敬佩,也薄得'当教材看会让你疯掉':它不替你包办所有细节,而是逼你思考。书中对枚举、指针运算、符号位填充等易被忽略处的精确辨析,正体现了这种'不将就'的严谨。无论你重读还是初识,它都更像一位功力深厚的同行,把C语言最本质的东西交到你手上。
"If a name that has not been previously declared occurs in an expression and is followed by a left parenthesis, it is declared by context to be a function name, the function is assumed to return an int, and nothing is assumed about its arguments. Furthermore, if a function declaration does not includ"
"BCPL and B are "typeless" languages. By contrast, C provides a variety of data types. The fundamental types are characters, and integers and floating-point numbers of several sizes. In addition, there is a hierarchy of derived data types created with pointers, arrays, structures, and unions. Express"
"Right shifting a signed quantity will fill sign bits ("arithmetic shift") or on some machines ans with 0-bits ("logical shift") on others"
"Declaring the argument x to be unsigned ensures that when it is right-shifted, vacated bits will be filled with zeros, not sign bits, regardless of the machine the program run on."
"char *fgets(char *line, int maxline, FILE *fp) fgets reads the next input line (including the newline) from file fp into the character array line; at most maxline-1 characters will be read. The resulting line is terminated with '\0'. Normally fgets returns line; on end of file or error it returns NU"
"void *realloc(void *p, size_t size) realloc changes the size of the object pointed to by p to size. The contents will be unchanged up to the minimum of the old and new sizes. If the new size is larger, the new space is uninitialized. realloc returns a pointer to the new space, or NULL if the request"