当前位置: 首页 > news >正文

松江区网站制作与推广泰州百度关键词优化

松江区网站制作与推广,泰州百度关键词优化,网址在线生成二维码,网站建设有哪些平台1.逗号表达式 逗号表达式,就是用逗号隔开的多个表达式。 逗号表达式,从左向右依次执行。整个表达式的结果是最后⼀个表达式的结果。 我们来看下面的一个代码: int main() {int a 1;int b 2;int ret (a > b, a b 2, b, b a 1);p…

1.逗号表达式

逗号表达式,就是用逗号隔开的多个表达式。

逗号表达式,从左向右依次执行。整个表达式的结果是最后⼀个表达式的结果。

我们来看下面的一个代码:

int main()
{int a = 1;int b = 2;int ret = (a > b, a = b + 2, b, b = a + 1);printf("%d", ret);return 0;
}

按照上面的规则应该为5,那么到底是不是呢?我们来看看。

 在逗号表达式中最后一个表达式的结果为整个表达式的结果,但是前面的表达式可能会影响最后一个表达式的值。

2.结构体

1.结构体的声明

在这里struct是关键词,假如我们需要描述一个学生的名字和年龄。

struct Stu
{
char name[20]; //名字
int age; //年龄
};

注意:在这里的Stu是结构体的名字不是变量。

2.结构体的初始化
struct Stu
{char name[20]; //名字int age; //年龄
};
int main()
{struct Stu s1 = { "zhang",18 };struct Stu s2= { "lisi",23 };return 0;
}
3. 结构成员访问操作符(.)

我们要如何打印结构体呢?我们就要使用结构成员访问操作符(.)来进行访问成员。

演示如下:

struct Stu
{char name[20]; //名字int age; //年龄
};
int main()
{struct Stu s1 = { "zhang",18 };struct Stu s2= { "lisi",23 };printf("%s %d", s1.name, s1.age);return 0;
}

结果如下:

3. 操作符的属性:优先级、结合性

在数学计算中我们知道先算乘除后算加减,那么在c语言中有没有相似的规则呢?

其实C语⾔的操作符有2个重要的属性:优先级、结合性,这两个属性决定了表达式求值的计算顺序。下面我们来看一个例子:

int main()
{int b = 1 + 2 * 3;printf("%d",b);return 0;
}

这个结果大家应该都会知道为7,这里就是典型的优先级表现,*的优先级比+的优先级高,所以先算*后算+

运算符的优先级顺序很多,下⾯是部分运算符的优先级顺序(按照优先级从高到低排列),建议大概
记住这些操作符的优先级就行,其他操作符在使用的时候查看下面表格就可以了。
• 圆括号( () )
• 自增运算符( ++ ),自减运算符( -- )
• 单目运算符( + 和 - )
• 乘法( * ),除法( / )
• 加法( + ),减法( - )
• 关系运算符( < 、 > 等)
• 赋值运算符( = )
由于圆括号的优先级最⾼,可以使用它改变其他运算符的优先级。


操作符优先级详解icon-default.png?t=N7T8https://zh.cppreference.com/w/c/language/operator_precedence

4.整型提升

C语言中整型算术运算总是至少以缺省整型类型的精度来进行的。
为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。

1.整型提升的意义

表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度⼀般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度。
通用CPU(general-purposeCPU)是难以直接实现两个8比特字节直接相加运算(虽然机器指令中可能有这种字节相加指令)。所以,表达式中各种长度可能小于int长度的整型值,都必须先转换为int或unsignedint,然后才能送入CPU去执行运算。

2.整型提升的规则

1. 有符号整数提升是按照变量的数据类型的符号位来提升的
2. 无符号整数提升,高位补0

我们来看一串代码:

int main()
{char a = -2;char b = 10;printf("%d", a + b);return 0;
}

在这串代码中可以看到创建了两个char类型的变量,并且都进行赋值,但值得思索的是我们给char类型赋值int 类型的时候是怎么放进去的,其实存放到a中时发生了截断,也就是说一开始-2的补码有32为bit但是只存进去了8位,这8位是后面的8位,也就是11111110 ,但是在计算过程中又要进行整型提升,也就意味着它们在计算时又通过整型提升变成32bit位进行计算。

5.问题表达式

我们来看一串代码:

int main()
{
int i = 10;
i = i-- - --i * ( i = -3 ) * i++ + ++i;
printf("i = %d\n", i);
return 0;
}

当出现这样的代码时,给人的感觉就是很难读懂,可读性差,由于优先级的不确定这个代码在不同编译器上的结果可能不同。

再来看一串代码:

#include <sdtio.h>
int fun()
{
static int count = 1;
return ++count;
}
int main()
{
int answer;
answer = fun() - fun() * fun();
printf( "%d\n", answer); //输出多少?
return 0;
}

这个代码其实也是有问题的,因为我们不知道函数调用的顺序是从哪一个fun开始的。所以也存在不同编译器,结果不同的现象。

谢谢
http://www.yidumall.com/news/87830.html

相关文章:

  • 沈阳疫情最新消息今天新增病例seo公司优化方案
  • wordpress 主题 微信seo优化需要多少钱
  • 网页设计策划书方案百度网站优化
  • 职业教育网站建设seo关键词排名如何
  • 聚美优品网站建设产品策略推广网站seo
  • wordpress 防ddos青岛seo建站
  • 电子政务建设网站图片关键词推广是什么意思
  • 淘客手机网站源码郑州seo优化顾问热狗
  • 电子政务政府网站建设方案seo网络科技有限公司
  • 手机培训网站建设seo优化网络公司
  • 网上销售怎样做网站2022年传销最新消息
  • 淘宝网站用什么语言做的seo排名软件有用吗
  • 荆州网站建设seo全称
  • 别人网站 自己的二级域名网页制作软件有哪些
  • 网站常用的中文字体seo网站分析工具
  • 法律顾问 网站 源码珠海网站建设优化
  • 做牛排的网站百度精简版入口
  • 建设银行住房公积网站花西子网络营销策划方案
  • 深圳品牌床垫西安seo推广公司
  • 大型网站开发视频链接式友谊
  • 做图专业软件下载网站商业推广软文范例
  • 团队如何分工做网站青岛seo优化
  • iis7部署网站免费seo关键词优化服务
  • 火车头采集器网站被k免费推广的方式
  • 网站做seo第一步seo教程优化
  • 网站的优化从几个方面合肥网站制作推广
  • 网站的头尾和导航的公用文件网络营销策略理论有哪些
  • 深圳网站公司注册怎么在百度投放广告
  • 天津做网站公司百度账号管理中心
  • asp做的网站数据库在哪里淘宝一个关键词要刷多久