【《C和指针》笔记】第一章<快速上手>
-
注释以
/*
开始到*/
结束或者使用//
-
.预处理指令:因为它们是由预处理器解释的,预处理器读入代码,根据预处理指令对其进行修改,然后把修改过的源代码递交给编译器。预处理指令(#include、#define)所定义的变量会被换成定义的值。
-
函数声明被称为函数原型,他们告诉编译器这些以后将在源文件中定义的函数特征。当这些函数被调用时,编译器就能对它们进行准确性检查。
-
这本书里,变量细分为标量与数组,所以标量暂时可以理解为区别于数组的变量。结构是标量,数组是向量。
-
数组参数是以引用总是进行传递的,也就是传址调用,而标量和常量则是按值传递的。
-
gets函数:
gets函数从标准输入读取一行文本并把它储存与作为参数传递给它的数组中;
一行输入由一串字符组成,以一个换行符结尾。gets函数丢弃换行符,并在该行的末尾储存一个NUL字节(一个NUL字节是指字节模式全为0,类似于‘\\0’这样的字符常量);
然后,gets函数返回一个非NULL值,表示改行已被成功读取,当gets函数被调用但事实上不存在输入行时,他就返回NULL值,表示它达到了输入的末尾(文件尾)。 -
字符串就是以NUL字节结尾的字符。NUL是作为字符终止符,它本身并不被看成是字符串的一部分。字符串常量就是源文件中源文件中被双引号括起来的一串字符 。NUL是ASCII字符集中‘\\0’字符的名字,它的字节模式全为0,NULL指一个其值为0的指针。
-
printf函数执行格式化输出
-
&&是‘逻辑与’操作符。要使整个表达式为真,&&操作符旁边的表达式都必须为真。然而如果左边的表达式为假,右边的表达式便不再进行求值,因为不管它是真是假,整个表达式总是假的。
-
puts函数是gets的输出版本,它把指定的字符串写到标准输出并在末尾添上一个换行符。
-
getchar函数从标准输入读取一个字符并返回它的值。如果输入中不再存在任何字符,函数就会返回常量EOF,用于提示文件结尾
int ch;
ch=getchar();
while(ch!=EOF)
{ch=getchar;
}
这里的ch被声明为整型,而我们事实上需要他来读取字符?
因为EOF是一个整型值,它的位数比字符类型要多,把ch声明为整型可以防止从输入读取的字符意外地解释为EOF。但同时,也意味着接受字符的ch必须足够大,足以容纳EOF;
-
当数组名作为实参时,传给函数的实际上是一个指向数组起始位置的指针,也就是数组在内存中的地址,正是因为实际传递的是一个指针而不是一份数组的拷贝,才使数组名作为参数时具备了传址调用的语义
-
putchar函数,他与getchar函数相对应,它接受一个整形参数,并在标准输出中打印该字符。
-
strcpy函数与strncpy函数