昨天写的文章,格式明显不好。今天希望有个进步。
1.sizeof()用户strlen区别。
首先 sizeof绝对不是一个函数。只不过使用的时候加个括号,比较类似而已。早在程序编译的时候sizeof就已经求出来了最终的数值。求出的是字节数。
然而strlen是一个函数。求的是字符串的长度。截止到字符串的末尾(\0,不包括\0)。
2.联合union
联合类型定义了一组可供选择的值,他们共享一块内存,对于联合中的每个变量,编译器共分配一块内存。其大小可以容纳指定成员的最大成员所需要的大小。并且小的成员按照内存顺序,从前向后取本身大小。此时大成员中本部分的数值,就是小成员的数值。每次对联合中变量赋值。改变的只是相应内存的数值.
上面的是char a[2];下面的是int型的值。 可以清楚的理解。
3.大端与小端。(利用union特性可以判定大端还是小端)
4.scanf()函数
是标准格式输入函数
(1)返回值
scanf("%d %d",&a,&b);
如果a,b都成功读入,则scanf返回2
如果只有a成功读入,返回1
如果都没有成功导入 返回0
如果遇到错误返回EOF
(2)对于逗号,scanf("%d,%d,%d",&a,&b,&c);在%d之间有逗号,那么再输入时候也要加逗号,去掉逗号。输入时就不用加逗号。用空格 回车将各个数据隔开。
(3) scanf("%20s",address)如果输入字符内容多与20个字符,则下次scanf从此次停止除开始读入。若达到最大域宽已遇到空白符,则对改域的读理科停止,此时scanf();跳到下一个域
(4) 虽然空格、制表符、新行符都用作分割符号,但读取单字符的话却按照一般字符处理。所以当程序scanf("%c',&s)的时候,要特别注意函数键盘缓冲区的清空.(fflush(stdin))
5.缓冲类型。
标准库提供缓冲是为了减少对read 和write的调用。提供的缓冲有三种类型。
1.全缓冲,
在这种情况下,实际的IO操作只有在缓冲区被填满了之后才会进行,对驻留在磁盘上的文件的操作一般是有标准的IO库提供全缓冲,缓冲区一般是在第一次对流进行,IO操作时候,由标准的IO函数调用MALLOC函数分配得到的。
2.行缓冲
在这种情况下,只有在输入输出中遇到换行符时候u,才会执行实际的IO操作,这与徐我们一次写一个字符,但是只哟在写完一行之后才做IO操作。一般的涉及到终端的流,例如标注 输入(stdin)和标准输出(stdout)是行缓冲的。
3.无缓冲。
标准错误总是无缓冲的。对于所有的其他流来说,如果他们涉及到交互设备,那么他们就是行缓存的,否则就是全缓冲。 当然也可以由用户自己该变缓冲类型。