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;)(见下次具体分析)

原文地址:https://www.cnblogs.com/shuguang/p/2806267.html