某坑爹公司的笔记_Day04

一、常量

不可以改变的值。

1. 

3 -int        

3L -long int

3LL -long long int

3u -unsigned int

3ul       -unsigned long

2. 

3.5 -double       

3.5f     -float

3.5L     -long double 2^96 16Byte

二、sizeof(参数)

计算出数据所占内存空间大小,以字节单位。

参数可以是类型、变量或表达式,但sizeof()不负责计算表达式的值,只关注类型。

sizeof(参数)对应的数据类型是long unsigned int->%ld


三、运算符

C语言的一个特点是它更强调表达式而不是语句,表达式是表示如何计算值的公式,最简单的表达式是常量和变量,变量表示程序运行的时候需要计算的值,常量表示不变的值,更加复杂的表达式把运算符用作操作数。


1.算术运算符

a.+、-、*

b./(求商)和%(求余、取模)

1)/ 整数相除,取整数部分

2)/和%都不能对0操作,否则中断程序,但/0.0允许,无穷大(inf)。

3)%只能用于整数,浮点数不支持

4)/向0取整(取更靠近0的数),运算时的符号与数学中的定义是一样的

5)%符号与%前面的数字符号相同,运算时的符号与数学中的定义是不一样的


2.赋值运算符 =

a.把等号右边的值赋给左边的变量 

赋值从右向左

int i = 10;

int j=20,k=30;

i=j=k=6;注:不推荐 

b.左边必须是一个左值(变量),不能是常量,也不能是表达式

i+j = 10;错误 

int 10 = x;错误

c.=代表赋值 ==代表相等

d.赋值可以和其它运算符结合使用,叫复合赋值

i+=3 -> i = i + 3

优点:+=(*一个操作数) 比 = + (二个操作数)效率高

3.自增、自减运算符

a.++或--:变量自增或自减,不能用于常量。

b.可以使用*整型变量 int/short/long、浮点型float/double和字符型char变量。

c.前缀表达式++i,先自增(减),再运算

    后缀表达式i++,先运算,再自增(减)

d.i,++i,i++,从内存上说是同块内存

e.在同一个表达式中不要对同一个变量多次进行自增或自减操作,难度加大,代码变的不可读。

k=++l + l++ + l++;

4.关系运算符

a.主要用来表示两个或多个数、变量、表达式之间的关系。

b.在C语言中,关系运算符和数学上的>、<、>=、<=相对应的,==等于、!=不等于,表达式产生结果,1(成立)或0(不成立)

c.关系运算符也可以用于比较整数和浮点数,也允许混合类型操作数。

5.逻辑运算符 &&与 ||或 !非

通常用来表示表达式间的关系

a.逻辑运算符所产生的结果:逻辑结果0(不成立、假)或者1(成立、真)

b.当操作数处理结果不是1或者0时,逻辑运算符将非零操作数作为真值处理。 1真 非0真 0假 

c.&&与(且)、||或、!非

d.表达式1 && 表达式2   逻辑表达式的结果为

真                    真                       真

      真                    假                       假

假                    真                       假

假                    假                       假

两者都为真,逻辑表达式结果才为真

e.表达式1 || 表达式2      逻辑表达式的结果为

真                    真                        真

真                    假                        真

假                    真                        真

                假                    假                        假

两者只要有其一为真,逻辑表达式结果就为真

f.非(取反)关系表达式

表达式1         !表达式1 

真                    假

假                    真

g.短路运算

1)短路与:若第一个表达式的值为假,后面的表达式不再计算

2)短路或:若第一个表达式的值为真,后面的表达式不再计算

6.取地址&和寻址运算符*

a.在变量前加上&,得到的就是变量在内存中的地址

b.内存会被划分成以字节为单位,一块一块的空间

每一个空间都有唯一的标识,内存地址。

c.在地址前使用*寻址符号,得到该地址保存的数据、值。

7、类型转换

a.类型升级

类型升级,浮点型高于整型,长整型高于短整型,有符号与无符号取有符号。

在C语言中,类型转换是没有提示的

高 long double

  double

  float

  long long

  long

低 int


a.类型升级

低精度的值赋值给高精度的值是没有问题的

int i = 10;float f = i;

高精度的值赋值给低精度的值是有可能有问题的

int i2 = 200;

char c = (char)i2;//最好在代码中提示

b.其它转换

1)浮点型和整型运算,转换浮点型(double)后运算

2)short/char的运算转成int后运算

c.如果程序中进行类型转换,可以使用强制类型转换

目标类型 变量 = (目标类型)源类型变量;

注:类型转换的时候,实际是建立了一个新的变量(开辟了新的内存空间),原有的变量不变。

8.条件运算符 多目运算符 三目运算符

1.语法格式:

条件表达式?表达式1:表达式2;

2.若条件表达式值为真值,则条件表达式的值为表达式1的值,若条件表达值为假,则条件表达式的值为表达式2的值。表达式1和表达式2为不同的基本类型时,会自动转换二者中精度较高的类型。

9.逗号运算符

表达式1,表达式2,表达式n;

1.依次计算各表达式的值,以表达式n的值作为整个表达式的结果 

2.并不是所有出现逗号的地方都组成逗号表达式,如果在声明变量、函数的参数中,逗作用就是分隔符。

10.运算符的优先级

a.单目运算符(++、--)优先级较高,赋值运算符优先级较低,算术运算符优先级比较高,关系运算符和逻辑运算符优先比较低。从高到低参考关系:如


  高 初等运算符:()、[]、.

|     单目运算符:!、++、--、类型转换、&、*、sizeof()

|     算术运算符:先*、/、%、后加、减

| 关系运算符:>、>=、<、<= 高于!=、==

|     逻辑运算符:   !高于&&高于||

|     条件运算符:?:

|     赋值运算符: =、+=…复合赋值

低   逗号运算符:,


  注:如果无法确定优先级,可像数学中的情况一样,使用()符号。

  b.运算顺序(结合性)

多数运算符具有左结合性,单目/三目/赋值运算符具有右结合性。

左结合性:a+b+c=>(a+b)+c

右结合性:a=b=c=>a=(b=c)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值