黑马程序员—-C语言入门十重奏之三相悉

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

首先,认识一个新的xCode快捷键吧:shift+cmd+k清楚缓存

我们认识了C语言后,就该熟悉它了,当然要从最基本的开始,就像我上节说的,可以把C语言当做一门类似英语的语种来学习,那么知道了C语言组成的单词,今天就来讲讲它是用什么连贯成句的。
1.表达式
算数、关系、逻辑
表达式一定有返回值
表达式后面加上分号,构成表达式语句

2.运算符
按参与运算的操作数个数分为单目、双目、三目
功能划分:算数、关系、逻辑、按位运算符

类型运算:
    int a=10,b=3,result=0;
    float f1 = 3.0f;
    result = a+b;
    printf("%f\n",a/f1);//同float型的运算后结果也是float类型的
    result = a/f1;
    printf("result = %d\n",result);//result是整数,如果给他一个小数,那么此时只能保存小数的整数部分
    return 0;
注意:%求余运算符前后都只能是整数

类型转换
隐式类型转换(自动转换)、显式转换(强制转换)
float + int —自动转换为float + float = float
(int)float+int = int—强制转换

一个大数加一个很小的数
    //大数+小数,如果使用单精度会有问题
    int num=3455;
    float f2=0.03;
    printf("%d",(int)f2);//只在printf()函数里强制转换,对原数据无影响
    printf("%f",num+f2);
(1)赋值运算符:=
等号的左侧必须是一个变量
a+b=3;//是错得

(2)复合赋值运算符
+= -= *= /= %=
a+=b+3;//按优先级先算b+3然后a=a+(b+3);

(3)自增、自减运算
只能作用在变量上,不能用在常量上!
++(a+b);//错,()内是个表达式,表达式一定有返回值,变成常量了。
a++、a—-后缀表达式先取a得值作为本表达式的值,再对a进行自增、自减运算
++a、—-a前缀表达式先取得a自增、自减运算后的值,再赋给表达式的值

(4)sizeof(常量/变量/结构体名称)运算符
不是函数,而是一个操作符
以字节的形式给出了其操作数占用的存储空间的大小
    double a;
    char ch = ‘a’;
    int size=sizeof(1);//4
    size=sizeof(a);//8
    size=sizeof(int);//4sizeof用于计算某一种数据类型在内存中占用字节数
    size=sizeof(2.3f);//4
    size=sizeof(2.3);//8(默认是double型)
    size=sizeof(‘a’);//4(把字符串的asc码转换为二进制存入内存中,也就是把a当做数字97转化成二进制存储)
    size = sizeof(ch);//1字符型变量占用内存与字符常量占用内存有区别的
    size = sizeof ch;//省略括号了
     printf("%d\n",size);
注意:sizeof用在常量和变量的时候,是可以省略括号的

(5)逗号运算符
把n个表达式连接起来组成一个逗号表达式
求值过程:
分别求n个表达式的值
取最后一个逗号后面表达式的值
#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a = 1,b = 7, result = 0;
    result = (a+4,b+3,a+b);
    printf("%d\n",result);//取最后个逗号后面表达式的值
    result = ((a+4,b+3),a+b);
    printf("%d\n",result);
    result = (a+4,(b+3,a+b));
    printf("%d\n",result);
    return 0;
}
注意:
1.可以由括号嵌套使用,还是取最后一个表达式的值
2.并不是所有出现逗号的地方都能组成逗号表达式,比如定义多个变量的时候

(6)关系运算符左向右结合
#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a = 1,b = 2,result = -1;
    result = a == b;//0
    result = a > b;//0
    result = a < b;//1
    result = a >= b;//0
    result = a <= b;//1
    result = a != b;//1
    printf("%d\n",result);
    return 0;
}
表达式结果是真=1;是假=0。

(7)逻辑运算符
&& || 左结合
!右结合
逻辑运算符短路问题:
  && 口诀:一假为假
 A && B
 如果A为假,B就不执行了,这就是逻辑与的短路

  || 口诀:一真为真
 A || B
 如果A为真,B就不执行了,这就是逻辑或的短路
    int x=0,y=0,z=0;
    int result = ++x || ++y && z++;
    printf("result = %d,x = %d,y = %d,z = %d\n",result,x,y,z);
    x=0,y=0,z=0;
    result = x++ ? y++ : z++;
    printf("result = %d,x = %d,y = %d,z = %d\n",result,x,y,z);
    return 0;
(8)唯一的三目运算符
表达式1?表达式2:表达式3
表达式1为真执行表达式2的结果,为假执行表达式3的结果
#include <stdio.h>

int main() {
    int max,b,c;
    scanf("%d%d%d",&max,&b,&c);
    max=max>b?max:b;//先比较两个数,大的那个取出
    max=max>c?max:c;//拿比较出的大值与第三个数比较,再取出大的那个
    printf("%d\n",max);//求最大值
    return 0;
}
优先级和结合性
只有优先级相同的情况下,才谈结合性

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值