printf主要是为了便于取地址,默认将char,short变成了int,float变成了double;但scanf的时候,因为数据宽度的问题,必须区分%f和%lf。

 

memset 是字符串操作函数:

举例:

int a[100];
memset(a,1,sizeof(a));
可是a却被赋值成168430090,168430090......

就是对a指向的内存的sizeof(a)个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个 INT元素是4字节,合一起就是1000000010000000100000001,就等于16843009,就完成了对一个INT元素的赋值了。

同理,memset(a,-1,sizeof(a));  memset(a,0,sizeof(a));  这是可以生效的。