C语言笔记_m0
XX信息技术大赛
笔者目前学生一个,刚刚参加了信息技术大赛,重新的拾起大一学的C语言,发现大一学的东西基本忘记了,一些关于C语言的一些技巧小窍门,小细节都已经忘的差不多了,经过这次的比赛,发现还是得记一点东西,一些基础。所以,写下这遍文章。感兴趣的朋友可以看看,写的不是很好,还请各位大佬批评指正。
这遍就是一些C语言的基础。一些干货吧。
下面会简单分成几小类
C语言的一些概念
1、C语言的基本单位是函数。
2、C语言程序总是从main()函数开始执行。
3、C语言中最简单的数据类型包括整型、实型、字符型。
4、C语言中数组名代表数组首地址。
5、在宏定义#define PI 3.14159中,用宏名PI代替一个字符串。
6、在“文件包含”预处理语句的使用形式中,当#include后面的文件用了“”(双引号)时,寻找被包含文件的方式是先在源程序所在目录搜索,再按系统设定的标准方式搜索
7、C程序中各函数之间既允许直接递归调用,也允许间接递归调用
8、C语言中文件的存取方式是顺序存取,随机存取均可。
9、在C语言中,int,char和short三种类型数据在内存中所占用的字节数 由所用机器的机器字长决定。
10、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符必须为字母或下划线
11、设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为非0值 。
12、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中。
13、指针的*号只是一个说明符
14、C语言中的文件类型只有 ASCII码文件和二进制文件两种。
15、C语言中用"r"方式打开的文件只输入不能输出。
运算符
运算符的优先级:
赋值运算符<逻辑运算符<关系运算符<算术运算符
这里就给出一个小例子吧
设有语句int a=3,则执行语句a+=a-=a*a以后变量a的值是-12。
这个是首先算a * a然后在从右往左,得出结果。
i++,++i
i++是先运算,后加一。++i是先加一后运算。就是数在前就先运算,+在前,就先加。
/与%%
/是得到它的商的整数部分,%%是得到商的余数部分。
小列子:
设有 int x=11; 则表达式 (x++ * 1/3) 的值是3,这个就是从左往右算就行。
x ? y : z
当x为真时,就取y的值,当x为假时,就取z的值。
&& 与 ||
&&就是逻辑与,||逻辑或。
int i=(1,2,3)
此时i=3
i=1,2;
此时i=1。
变量命名规则
1、变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。
2、 变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。
3、变量名绝对不可以是C语言关键字。
4、 变量名中不能有空格。
来个小例子:
下列标识符中不合法的是()。
s_name
_e
fox
3DS
char字符数组
char a[]="123"与char b[]={‘1’,‘2’,‘3’}
数组a的大小为4,因为后面还有一个 字符;
数组b的大小为3。
字符数组中的字符串可以整体输入、输出
不可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
若有定义:int b[5];则以下对b 数组元素的正确引用是*(b+2)。
循环结构
switch循环结构
在case 后面如果没有break;会继续执行下一个case。
上个小例子:
设有声明语句:int a=1,b=0;则执行以下语句后输出() 。
switch (a)
{
case 1:
switch (b)
{
case 0: printf(“0”);break;
case 1: printf(“1”);break;
}
case 2: printf(“2”);break;
}
结果为0****2
联合体
最后介绍一下联合体
在C语言编程中,变量的定义是分配存储空间的过程,一般情况下,每个变量都具有自己的存储空间,但是,使用联合体可以实现在同一个内存空间中存储不同的数据类型,任一时刻存储一种数据类型,不是同时存储。
union unions{
int n;
char ch;
short m;
};
- 1
- 2
- 3
- 4
- 5
- 6
- 7
这个联合体所占大小就是联合体中最大数据类型的大小。
三个类型共用一段存储空间。
ch的值会影响到n与m 的值,而n 的值可以影响ch与m 的整个的值。
目前就这些了。乐与分享,喜分享之乐。
感谢阅读的每一位。