1. scanf 函数中,标量参数前面必须加上&符号,数组参数前不需要,但是如果数组出现了下标引用,也就是说实际参数是数组的某个 特定元素,那么他的前面也必须加上&符号。 %c,%d,%ld,%f,%lf都要加&符号,%s不用加&符号。
2. printf 函数输入之前的空白(空格,制表符,换行符)会被跳过,值后面的空白表示该值的结束。用%s输入字符串时,中间不能包 括空白。
3. &&逻辑与,&按位与
4. 编程,从标准输入读取几行输入,每行输入都要打印到标准输出上,前面要加上行号。编写程序时,输入行的长度没有限制。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch;
int line;
int at_beginning;
line=0;
at_beginning=1;
while((ch=getchar())!=EOF) /*读取字符并逐个处理他们*/
{
if(at_beginning==1)
{
at_beginning=0;
line+=1;
printf("%d ",line);
}
putchar(ch); /*打印字符,并对尾进行检查*/
if(ch=='\n')
at_beginning=1;
}
return EXIT_SUCCESS;
}
/*在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。EOF不是正常的输入,你需要CTRL+D或者F6或者CTRL+Z中断输入,才能触发一个EOF(一旦EOF,后续任何的对stdin的输入都会失败)没有任何一个字符是EOF,这是为什么需要把getchar返回值设置为int而不是char,因为当EOF时,系统返回的时4字节的int类型的-1。 */