C语言-笔记

1.原则上尽量少使用全局变量,因为全局变量的生命周期太长,容易出错,也会长时间占用空间

2.如果参数是指针,且仅作输入参数用,则应在类型前加const,以防止该指针在函数体内被意外修改。

3.注意sanf();中,引号内的内容是3个%c, 如果中间有逗号分隔,那么逗号也是需要输入的。

而且,在C中,enter键代表一个换行符,可以被当做字符被scanf();接收。

scanf()函数允许把普通字符放在格式字符串中。除了空格字符之外的普通字符一定要与输入串准确匹配。

因为编译器规定输入的时候并不是立即回显,而是存到一个缓冲区里面。当遇到换行字符会释放缓冲区的数据,并清空缓冲区。scanf()在读取数字时会跳过空格、制表符和换行符!

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main ()
 4 {
 5     char a,b,c;
 6     printf("input 3 char value\n");
 7     scanf ("%c%c%c",&a,&b,&c);                 //如果sanf("%c,%c",&a,&b);在运行时候,要带上逗号
 8 
 9     printf("%c,%c,%c",a,b,c);
10     getchar();
11 }

 4. getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回 车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字 符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.    getchar()并不跳过换行符

1 #include <stdio.h>
2 #include <stdlib.h>
3 int main ()
4 {
5     int a;  
6     a =getchar();
7     printf("%d",a);
8 }

5. 在使用VS2010时候,防止运行结束一闪而过的方法:

1)#include <stdlib.h>   main()最后加上一句: system(“pause”);

2)在需要暂停的地方,getchar();

6. int main()   这里括号为空,则可接受各种参数,如果int main(void) 则表示不接受参数

7.C语言中,两个整型数相除,如果不能除尽,那么小数部分会直接被丢弃,即“截尾”。

8. C语言中的switch(),接受的是整数:整型或者字符型。而浮点型,字符串是不被switch()接受的。

9.栈:这个空间是所有的函数共享的,每个函数在运行时会独占这个空间。栈空间的大小是固定的,它是留给函数的参数与局部变量用的。

10.          void *p = malloc(100);   //比如:malloc(sizeof(int));

     free(p);   分配了100个字节的空间,然后释放。

 负责分配内存的 malloc 函数可能会遇到内存分配失败的情况,这时它会返回 NULL。

by the way: C 没有异常机制~~

11.

歇息一下~~

posted @ 2016-04-09 18:45  M_Lion  阅读(53)  评论(0编辑  收藏  举报