欢迎来到天天文库
浏览记录
ID:11520390
大小:28.00 KB
页数:6页
时间:2018-07-12
《c语言基础知识总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、c语言基础知识总结1.标识符的命名规则简单来说有如下两点:(1)标识符由字母、数字和下划线组成(2)标识符的第一位必须是字母或者下划线,不能是数字(3)标识符不能是关键字,如,sizeof等2.输入输出函数及注意事项1)输入单个字符:getc,getchar,getch(不会在屏幕显示输入字符)2)输出单个字符:putc3)输入一串字符(可以有空格,Tab等):gets4)输出一串字符(可以有空格,Tab等):puts5)标准输入:scanf(可以输入数字,字符,字符串等。输入以空白字符分割)6)标准输出:printf(可以
2、格式花输出数字,字符,字符串等。)文件输入输出:在上面的输入输出函数(除了getchar,getch)前面加上f,比如fgetc,fputc,fscanf,fprintf,就是文件输入输出函数了。注意:1)格式化输入输出函数:scanf(格式控制,地址项表)其为格式输入函数(其中格式控制要用双引号引起来);printf(格式控制,输出项表)其为格式输出函数((其中格式控制要用双引号引起来)2)字符输入输出函数:ch=putchar()(意思是从计算机读入一个字符并把它赋给字符ch);putchar(ch)(意思是输出字符ch
3、)(注意:字符输入输出函数都只能一次输入输出一个字符);3)字符串输入输出函数:gets(字符数组名)(功能是从标准输入设备键盘上输入一个字符串,并将该字符串赋给字符串赋给字符数组名;puts(字符数组名)(功能是把字符数组中的字符串输出到显示器;)3.运算符的优先级1级优先级左结合()圆括号[]下标运算符->指向结构体成员运算符.结构体成员运算符2级优先级右结合!逻辑非运算符~按位取反运算符++自增运算符--自减运算符-负号运算符(类型)类型转换运算符指针运算符&地址与运算符sizeof长度运算符3级优先级左结合乘法运算符
4、/除法运算符%取余运算符4级优先级左结合+加法运算符-减法运算符5级优先级左结合<<左移运算符>>右移运算符6级优先级左结合<、<=、>、>=关系运算符7级优先级左结合==等于运算符!=不等于运算符8级优先级左结合&按位与运算符9级优先级左结合^按位异或运算符10级优先级左结合按位或运算符11级优先级左结合&&逻辑与运算符12级优先级左结合逻辑或运算符13级优先级右结合?:条件运算符14级优先级右结合=+=-==/=%=&=^==<<=>>=全为赋值运算符15级优先级左结合逗号运算符优先级从上到下依次递减,最上面具有最高的优
5、先级,逗号操作符具有最低的优先级。4.全局变量和局部变量全局变量储存在静态数据库,局部变量在堆栈一般来说,就是变量从声明到函数结束这段代码空间内,这个变量起作用全局变量,就是在main外面定义,一般是在宏定义后面,代码的前面作用域是整个文件中声明变量的后面全部都可以用这个变量。包括子函数和main主函数局部变量,一般来说就是在函数中声明的变量,作用域是声明这变量开始,到这个函数结束5.static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?1)全局变
6、量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。2)从以上分析可以看出,把局部变量改
7、变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3)static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件综上所述:static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么
8、区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝6.c语言的内存分配问题1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似
此文档下载收益归作者所有