C语言基础入门----(1)C语言知识储备


1. 初识C语言

C语言编程是一门面向过程的高级编程语言,虽然如今有很多高级语言,诸如Java,C++,以及近几年来大火的Python等,但是C语言作为较接近底层开发,高效灵活的语言,受众较广,使用场景较多,锻炼逻辑思维,作为入门编程的基本开发语言。

2. 基础知识准备

2.1计算机存储单位

位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。
字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节。例如,一个ASCII码1用一个字节表示,一个汉字用两个字节表示。

国际上普遍采用ASCII编码作为通用的字符编码。
字(Word):两个字节称为一个字。汉字的存储单位都是一个字。

1KB=1024Byte =2的10次方B
1MB=1024KB
1GB=1024MB  

注:KB、MB、GB等不是新的存储单位,而是基于字节换算的单位。

2.2数据表现形式

2.2.1数值型

二进制,八进制,十进制,十六进制

日常生活中,我们都是采取逢十进一的十进制,而二进制等进制算法便如其名,逢二/八/十六进一。二进制是计算机所能识别的进制数字,所有的数据在计算机中存储归根结底都是以二进制形式存储。当一位上超过9时,数字便以字母a~f表示(即a对应11,b对应12,c对应13等),八进制我们一般以0开头作为标志,十六进制我们以0x开头作为标志。

以下皆为十进制转换:
二进制例子:1-->01    2-->10      5-->101     8-->1000
八进制例子:8-->010    9-->011    15-->017    26-->032
十六进制例子:16-->0x01   17-->0x11   31-->0x1F  54-->0x36

2.2.2非数值型

常见ASCII码,词法符号

1)常见ASCII码

字符‘0’-48得数字0;
大写字母字符+32得对应的小写字母字符;
小写字母字符+32得对应的大写字母字符;
\0作为字符串结束的标志(字符串后面会讲解,初学者可以单纯的记忆即可)
\n换行符   ASCII码:10
空格       ASCII码:32


2)词法符号

32个关键字(建议熟练记忆)
所谓关键字便是在系统中预定义的具有特殊功能的一些字符串。

数据类型(8)char(字符型数据)、short(短整型数据)、int(整型数据)、
long(长整型数据)、signed(有符号型)、unsigned(无符号型)、
float(浮点型)、double(双精度浮点型)、void(空)

构造类型(4个)
struct(结构体)、union(共用体)、enum(枚举体)

循环控制语句(5个)
fordowhilebreakcontinue

条件语句(3个)
ifelsegoto

选择语句(3个)
switchcasedefault

返回语句(1个)
return

存储类型关键字( 5 个)
auto(自动型)、extern(外部引用)、register(寄存器类型)、static(静态区)

其他关键字( 3 个)
const(只读,通常理解为常量修饰)、sizeof(预定义函数名,计算数据所占空间大小)、
volatile(防止编译器优化)、typedef(重定义)

运算符
算术运算符:
顾名思义,算术运算符是适用于算术的运算符,我们日常生活中的加(+)减(-)乘(*)除(/)都属于这类。需要注意的是,C语言中的除法为向下取整运算,且会根据使用的参数类型更改获得的商的类型。

例如:
5/2         ..............   C中将获得的值为2      
小学数学很明确的告诉我们,5/2=2.5,或者  得2余1
C中的除便是如上的整数部分,即“取整”
再例如:
5.0/2.0     ..............   C中将获得的值为2.5
此时即满足上文所说      “根据使用的参数类型更改获得的商的类型”

C不只有取整,还有取余(%),对应上文可理解为获得的为余数部分。

例:5%2      ..............   C中将获得的值为1                

逻辑运算符:
逻辑运算符是一类表示逻辑关系的运算符,需要明确一点的是:

在C语言中,非0即为真(true),0为假(false)。
此处的真也就是真命题,是正确的意思;相应的,假便是只得假命题(伪命题),即错误的意思。

&&(逻辑与):
全真则真,一假则假
||(逻辑或):
一真则真,全假则假
!(逻辑非)
非真即假,非假即真
截断法则:
逻辑或运算中:如果前面的表达式为真,则后面的表达式不执行
逻辑与运算中:如果前面的表达式为假,则后面的表达式不执行

此处开始便逐渐导入C程序代码,方便读者逐步熟悉C编程
int main()          
	{
	int a=5,b=6,c=7,d=8,m=2,n=2;   //定义变量a,b,c,d,m,n且同时赋初值
	(m=a>b)&&(n=c>d);              //实际上我们都知道a=5<b=6,所以m即为0
   //由于截断法则,前面的m为0,故而后面的(n=c>d)不再执行,所以n还是初始化时的赋值2
	printf("%d  %d",m,n);           // 0 2
	}
	//main()为主函数,在C中执行的便是main函数,{}内便是主函数中要执行的操作,
	//后面我们会有很多函数,但是无论函数有多少,在运行时依旧是运行的main函数中的内容。
	//printf()为输出函数
	//内部参数“%d”是控制输出格式为整型(int)形,每有一个控制格式的参数,
	//后面就应有几个要输出的变量。

位运算符:
前文提过,计算机内的数据都是以0,1的二进制数据表示,故而我们的位运算便是此基础上进行的操作。
&(位与):
全1则1,有0则0

|(位或):
有1则1,全0则0

^(异或):
不同为1 , 相同为0

~:
取反(通过补码进行操作)按位取反 0 -> 1

		    原码		  反码			          补码
正数		本身		  本身			          本身
负数		本身	除符号位其他按位取反		     反码+1
例如:~15
正数原码:0000	0000	0000	0000	0000	0000	0000	1111
正数补码:0000	0000	0000	0000	0000	0000	0000	1111
~:	 1111 	1111	1111	1111	1111	1111	1111	0000
取反码:1000	0000	0000	0000	0000	0000	0000	1111
+1:	1000	0000	0000	0000	0000	0000	0001	0000

<<:左移(以补码形式运算)
左移几位,右边补几个零

8<<2 =32
-5 << 3 = -40

同理,>>为右移
右移几位,左边补几个符号位

置一公式:a|(1<<n)       将第n位置1
置零公式:a&(~(1<<n))    将第n位置0

赋值运算符:
= :赋值运算;
+=:a = a+b —> a+=b 等效,同理 还有-= ,*=, /=

关系运算符
关系运算符即表示变量之间关系的运算符。
> :大于
< :小于
>=:大于等于
<=:小于等于
==:相等
!=:不等于

例:
1<x<5  =>  x>1 && x<5

关系运算符:
条件运算符又称作三目运算符
表达式1?表达式2:表达式3;
运算法则:先判断表达式1是否成立,如果成立就执行表达式2;否则就执行表达式3;

int a=3,b=5;
int c = a>b?a++:++b;                  //  int c = ++b;
c=?                                  // 6

优先级问题:

单目运算符 ! ~ ++ --
算术运算符 * / % + -
移位运算符 <<  >>
关系运算符 <  <=  >  >=  ==  !=
位与运算符 &
异或运算符 ^  |
逻辑运算符 &&  ||
条件运算符 ?:
赋值运算符 = += *= /= %= ...

口诀: 单算移关与 异或逻条赋
      从右向左单条赋

标识符
命名规则:
1.由数字、字母、下划线组成
2.开头不能是数字
3.不能和关键字重复
4.见名知义

分隔符与标点符号不做详细赘述。

1.标点符号
,     ;      ()         {}          []2.分隔符
换行  空格  tab


  1. ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。详细想了解可查询:百度百科:ASCII码 ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值