C语言基础(2)

一、转义字符

       转义字符是指ASCII码表中,用于表示那些常规输入中难以直接输入或具有特殊含义的字符。

       它通常以反斜杠“\”开头,后面跟一个或多个字符,组合起来构成特定的意思,比如:

  \n: 表示换行;

  \t:水平制表,携带前方字符与\t后字符空8个字节,若前方字符大于8个字符不到16个,将携带8个字符后的内容与\t后字符空8个;

  \b:退格,\b后面字符覆盖前面内容,有几个\b就覆盖前面几个字符;

  \r:回车,将光标移至最左端,将\r后面内容覆盖起始字符;

  \\:表示反斜杠“\”,以防被识别为转义字符;

  \’:代表单引号;

  \“:代表双引号;

  \a:电脑响一下;

  \ddd:1到3位八进制数所代表的字符;

  \xhh:1到2位十六进制数所代表的字符

  还有其他的使用方式,具体如下

 

二、变量赋初值

     程序中常需要对一些变量先预设初值,c语言允许在定义变量的同时使变量初始化,例如 

int a = 1 ,直接赋值;若先定义int a ,此时a为随机数,再定义 a = 1,此时为a赋值为1。

      int a = 1;表示初始化,即在为a开地址空间时将数值填完。一个变量只能被初始化一次,可以被多次赋值。除整型外,浮点型和字符型均可被初始化。

      int a, b, c = 5表示则对c完成初始化,c的初值为5,a与b仍为随机数。同时也不能写为int a = b = c = 5,可以写为int a = 3, b = 3, c = 3.

 

三、算数运算符

  3.1基本算数表达式

1. 加法 +     如 3 + 5;

2. 减法 -      如 3 - 4;

3.乘法 *      如 7 * 5;

4.除法 /      如 5 / 3;

5.求余 %    如 20 % 3

       其中两个整型相加结果为整型,两个整型相除结果为整型,舍去小数部分。求余则只允许整型或与整型相兼容的类型,求余结果与左操作数相关(正负)。编译器只做类型的检查。

       求余同样可以用于随机数的生成,下面是一段【50,99】之间的随机数生成代码

头文件引用了<stdlib.h>和<time.h>,random表示随机数的生成,srandom表示种子,定义time则是每秒生成不同的随机数,利用对变量t对50求余加50,得到随机数【50,99】。

 

 3.2运算符的优先级

     c语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。具体优先级如下(从上到下为优先执行)

 

        如果c语言的一个运算符两侧数据类型不同,则会先进行转换,然后进行运算,换算规则如下。

        其中,横向箭头表示必定的转换,例如char,short都会先转换为int,float会转换为double型;纵向的箭头自下向上优先级增高,在运算中低优先级的数据类型会转换为高优先级的数据类型,例如int与long同时运算时,int会转变成long型,这种混合运算中的转换我们称之为隐式转换。

        同时,出来在混合运算时进行转换之外,我们也能够进行自发的转换,如在变量前增加  (x)a,x表示我们想要转换的类型,加完后进行隐式转换,这种转换我们称之为显性转换,又称强制类型转换,该转化具有临时性。

       i + j; 表示语句,

      i + j 表示表达式       

      输出i + j时,i + j 叫做匿名变量,又称临时变量,是指程序执行中未定义的可改变的量,const  int i  值恒定,属于只读变量。等号“=”左边的值称为左值,一般为变量;右边的值称为右值,一般为常量。匿名变量均为右值,const属于左值。左值特点为 localable  能被定位的,右值特点为 readable  只读的。

3.3 自增  ++i 和 i++

++i 先加后用  在i的空间内进行加法运算

i++  先用后加  为i开辟匿名变量(相当于复制到另一个地址),表达式此时未加,而原本的空间内进行加法运算。

自增运算符和自减运算符只能用于变量,而不能用于常量和表达式。

 

四、赋值运算符

4.1概念

   赋值符号“=”就是赋值运算符,他的作用是将一个数据赋给一个变量。

4.2优先级

i = i + 10  可以写成 i += 10

4.3当赋值两端类型不匹配

double = int  无事发生

int = double 小数截断,double属于双精度浮点数型,int属于整型,小数部分被舍弃

short  =  int  高位阶段    int地址为4个字节,short为两个字节,高字节位丢失

int  =  short   高位字节产生空洞,补充规则位符号位扩展,短数据类型符号位为0时,长数据类型补0;反之补F;若为unsigned 无符号位,长数据类型补0。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值