c语言细节(1)
1.C语言没有string s;
用char * s; char s[100];表示字符串
对于字符串的scanf("%s",s); s前面不需要加&,,,
2.scanf("_%d",&a); 前面加上一个空格,避免循环输入的时候用getchar();吃掉后面的enter;
3.c=getchar(); putchar(); 和 c=getch();putch(c);的区别
前者先输入到缓冲区,当按下回车后,才赋值,可用回退修改;;;而后者直接赋值,不能修改;
输入字符串包含空格:gets(s); puts(s);
4. int a=4; float c=(float) a; 此时a仍然是int型的,只是暂时转换成float,
5. malloc()/free() 和 c++中 new /delete 的区别:(int * p=new int ; int *p=new int[10] 可见new只是一个操作符而已)
后者是操作符,负责分配内存空间+调用构造(析构)函数进行初始化;而前者是函数,只负责分配内存空间;
int * temp=(int *) malloc(10*sizeof(int)); malloc(n)---> n表示分配n个字节
返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针。
6. 位运算的艺术:(比如求模%, i%8 == i & 0x07;)(见下次具体分析)