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.
歇息一下~~