C语言基础整理

C语言是一种高级语言

一.理论知识

1.C程序:
    函数是C语言的基本组成单位
    能完成某个任务的,有始有终的C语言序列称为C程序
    用来编写程序的计算机语言称为程序设计语言
    一段C语言代码被保存后会生成三个程序文件
1)源程序
扩展名是 .c ,不能直接在计算机上与执行,需要将其编译为二进制带代码。
2)目标程序
扩展名是 .obj 由源程序经过编译得到的二进制代码文件。还是不能运行。
3)可执行程序
扩展名是 .exe 目标函数与库函数连接,可以在操作系统运行。

2.main主函数:
一个源程序有且仅有一个main主函数,程序必须从主函数main()开始执行,并且在main()函数中结束

#include<stdio.h>
int main(int argc,char *argv[])
	{
		printf("Hello,world!");
		return 0;
	}
以上main函数括号里的参数int argc与char *argv[]一般省略。
在C语言里,我们把以一个分号结尾的一句话叫做C语言语句,分号是语句结束的标志
以#开头的叫做预编译处理命令
注释可以加在任何位置

3.C语言里的词语
1)标识符:
    标识符由字母、数字、下划线组成,其中一个字符必须是字母或者下划线。标识符可以区分大小写,标识符主要以下两种。

  • 关键字,又称保留字,C语言规定赋予专门用途的标识符,主要与数据类型和语句有关,如int、float、char、typedef(自定义类型),以及语句相关的if、else、while、for、break等
  • 用户自定义标识符。一般包括程序中定义的变量名、数据类型名、函数名和符号常量

2)常量和变量:常量是有数据类型的,例如123,12.34,‘a’,"hello world"等。
3)运算符
    (运算符专栏)
4)分隔符
    ;、[、]、(、)和#都是分隔符。
5)结构

  • 顺序结构:从上往下,从左往右执行
  • 选择结构:if()…else();switch;break(单支,双分支,多分支)
  • 循环结构:for();while();do…while();continue;goto转向语句;return;(当型循环,直到型循环,次数型循环)

4函数的定义与调用

int max(int a,int b)------//函数头:函数类型 函数名(函数参数列表)
{	---------------------//函数体开始
	int x;---------------//函数中要用到的临时变量
	if(a>b) x=a;---------//函数语句
	else x=b-----------//
	return x;-----------//		结束函数调用并且返回x的值
}------------------------//函数体结束

定义函数后,就可以在程序其他地方调用函数,函数名(传入参数)
5)输入与输出:C语言没有输入输出语句,它通过调用系统库函数有关函数printf()和scanf();

二.数据类型(1字节=8位)

1.基本数据类型
(有道题说最基本数据类型:字符,整型,实型)

数据名称类型名数据长度取值范围
[有符号]整型int32位-231~231-1
[无符号]整型unsigned int320~232-1
短整型short16-215~215-1
unsigned shor160~216-1
长整型long32-231~231-1
unsigned long320~232-1
单精度浮点型float32位±10-38~1038
双精度浮点型double64位±10-308~10308
字符型char8位0~255

输出数据类型格式

格式含义
%d以十进制输出一个整数
%u以十进制输出一个无符号整数
%o八进制
%#o带前导的八进制
%x十六进制
%#x带前导的十六进制
%f保留6位小数的浮点数
%e以指数形式输出浮点数(小数点前仅有一位非零数字)
%p输出地址值
printf("%2d",123);---指定输出2位,原数据3位,所以原样输出,不够前面补空格
printf("%8f",1.38)---指定输出8位,小数位为6位不够用0补充,小数点也算一位
printf("x.y%f",1.25)----x-->整个位数;y-->小数位数,需要四舍五入

2.构造类型

  • 数组
  • 结构体
  • 联合体

3.枚举类型
4.指针类型

三.运算符

  • 逻辑运算符
  • 算术运算符
  • 关系运算符
  • 条件表达式
  • 位运算符
  • 赋值运算符
  • 杂项运算符
    优先级从高到低

算术运算符

运算符名称解释
(单目)++自增++a(先赋值),a++(先运算再赋值):a=a+1;
a=1;输出a++为1;而++a为2;
- -自减- -a;a- -:a=a-1;同上
(双目)+
-
*
/
%取余两边必须是正整数

关系运算符
若A=10,B=20

运算符描述实例
==检查两个数的值是否相等,
若相等,返回1否则0
(A==B)返回0
!=检查两个数是否相等,
若不等返回1
(A!=B)返回1
>;<判断运算符两边大小(A>B)返回0
>=;<=(A>=B)返回0

逻辑运算符
A=1,B=0;

运算符描述实列
&&逻辑与运算符,若两个操作数都非零,
则条件为真
(A&&B)=0
||逻辑或运算符,若两个操作数任意一个非零,
则条件为真
(A||B)=1
!逻辑非运算符,逆转操作数!A=0;
!(A&&B)=1;

位运算符
以二进制进行的
A=60;B=13

运算符描述实例
&按位与操作
0&0=0;
0&1=0;
1&1=1;`
(A&B)将得到12,
即00001100
|按位或运算;有1则1(A|B)=61,00111101;
^异或运算符;相同则0,不同则1;(A^B)=49;00110001
~按位取反(~A)=-61;11000011;
<<左移,左边的二进制丢弃,右边补0;A<<2;得到240;即11110000
>>右移,正数左边补0;
负数左边补1,右边丢弃
A>>2;得到15;00001111

方便计算左移,右移,移动n位,左移则乘以2n,右移则除以2n;
按位取反比较有意思,这里贴个连接,感觉讲得比较详细易懂
按位取反的理解

赋值运算

运算符描述实例
=等于
+=加等于C+=A;
理解成C=C+A;
-=减等于同上
*=
/=
%=
<<=左移且赋值
>>=右移且赋值
&=
^=
|=

杂项运算符

运算符描述实例
sizeof()返回变量大小sizeof(变量)返回变量类型大小;
若变量为int值,则返回4;
type强制类型准换char(a);将a转为char型
&返回变量地址&a[0];返回数组a[0]元素的地址值
*指向一个变量*a将指向一个变量
?:条件表达式a?b:c
若条件a为真则返回b的值,否则返回c
(a,b,c)逗号表达式三个式子都计算,最后结果返回c

运算符优先级
指针>单目运算符>双目运算符
乘除加减,
i++优先级大于++i;

类别运算符结合方向
后缀();[ ];++;- -从左到右
一元+;-:!;~;++;- -;
(type);*;&;sizeof
从右到左
乘除*;/;%从左到右
加减+;-从左到右
位移<<; >>从左到右
关系< <= > >=从左到右
相等==;!=从左到右
位与AND&从左到右
位异或XOR^从左到右
位或OR|从左到右
逻辑与AND&&从左到右
逻辑或OR||从左到右
条件?:从右到左
赋值=;+=;-=;*=;/=;%=;等等从右到左
逗号表达式从左到右

四.函数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值