C 语言随笔

昨天写的文章,格式明显不好。今天希望有个进步。

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.无缓冲。

标准错误总是无缓冲的。对于所有的其他流来说,如果他们涉及到交互设备,那么他们就是行缓存的,否则就是全缓冲。  当然也可以由用户自己该变缓冲类型。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值