你管这破玩意叫指针?

本系列分三篇,用破玩意的方式彻底理解好指针的本质:


(资料图片仅供参考)

你管这破玩意叫指针 -- 基础篇

你管这破玩意叫指针 -- 进阶篇

你管这破玩意叫指针 -- 变态篇

话不多说,开始!

内存,通常被严谨地画成下面这个样子,一个下方是低地址上方是高地址的格子楼。

但我今天换种画法,画成下面这个样子。

每个格子代表内存中的 1 个字节(8 位),格子上的数字就代表内存地址,我也直接用 10 进制来表示了,免得 16 进制又算不明白了。

目前内存是完全空的,格子里没有任何内容。

试想一下,如果你忘掉所有的语法规则和编程规范,你会如何描述对这些内存格子的操作呢?

一、类型系统

很简单,往格子 3 处放个数字 29,往格子 6 处放个数字 38,就这么简单直接地描述即可。

但是这样说话太麻烦了,什么往格子 3 处放个数字 29 的,废话太多,也不方便不讲感情的计算机去理解。

那我们就定个指令,使用 mov $x, (y) 表示把数字 x 放入格子 y,如下:

mov$29,(3)mov$38,(6)

这就表示刚刚说的:

把数字29放入内存格子3把数字38放入内存格子6

是不是太简单了?别急,好戏马上开始!

如果要把数字 999 放入内存格子 8,该怎么办呢?

由于 1 个格子表示 1 个字节,只有 8 位,因此只能表示 256 个数字,要么是有符号的 -128 ~ 127,要么是无符号的 0 ~255,显然数字 999 无法放在 1 个格子内,只能占用 2 个格子了。

那也好办,就这么说,把数字 999 放入格子 8,连续占用两个格子。

但这样,我们刚刚的 mov 指令就得改改了,不但要表示"存放"这个含义,还得表示占用了多少个格子。

我们用 movb 表示只占 1 个字节,用 movw 表示占用 2 个字节。那么,刚刚的三个数字,就分别可以这样用指令来表示了:

movb$29,(3)movb$38,(6)movw$999,(8)

含义就是:

把数字29放入内存格子3,占1个字节把数字38放入内存格子6,占1个字节把数字999放入内存格子8,占2个字节

OK,既然有了 1 字节和 2 字节的的指令,不妨再设计下,用 movl 表示 4 字节,movq 表示 8 字节 ...

movb占用1字节movw占用2字节movl占用4字节movq占用8字节

不知不觉,类型系统就被你悄悄设计出来了!当然,虽然这只是个半成品。

二、变量

你不断地往不同格子里放数据。

比如我把我的年龄放在 11 号格子(占 1 字节),把我的月薪放在 14 号格子(占 4 字节)。

现在我们的内存已经非常混乱了,你根本记不住原来的 3 号格子放的数据表示什么,11 号格子又表示什么,只能通过看数字知道 14 号格子里放的确实是我的月薪。这该怎么办呢?

增加一层抽象嘛!我们给这些放了我们数据的格子,都贴上个标签,就可以不用再记那些无意义的格子编号了。

这样以来,其实我们也不再关心,这些标签到底在哪个格子里,只要给我找到格子把我的数据放进去就可以了。

movb$29,amovb$38,bmovw$999,cmovb$18,agemovl$2147483647,salary

当然,我还需要再通过这个标签,把我刚刚放进去的数据找出来。

这很简单,但存在一个问题,放进去的时候,我们可以通过 movb,movw,movl 等知道占用多少个格子。而取出来的时候,标签上可没有写这个数据占用了多少个格子,这是有问题的。

因此,在定义这个标签时,不能光取个名字,还需要有个信息就是,这个标签对应的数据,占了多少个格子。

我们就效仿刚刚的存放操作,也规定一系列单词,来修饰这些标签,表示占用了多少个格子。

char 表示 1 个字节,short 表示 2 个字节,int 表示 4 个字节,long 表示 8 个字节 ...

于是乎刚刚的 5 个数据,就可以表示为如下指令:

chara=29;charb=38;shortc=999;charage=18;intsalary=2147483647;

行了,我也别藏着掖着了,相信大家也知道,这里就是 C 语言的写法,而刚刚那堆 mov 是汇编语言的写法。

这些 char a,char b,int salary 等,就是变量!记住,变量不但要有名字,还得有类型!

三、变量定义与赋值

其实,刚刚的写法,是把变量的定义与赋值操作写在一行了。

比如有如下语句:

inta=1;

实际上是分成两步的:

//变量的定义inta;//变量的赋值(此处也可以叫变量的初始化)a=1;

其中变量的定义是为了方便程序员后面去用它,这部分不是给 CPU 看的。

而变量的赋值才是真正在内存中把数据放进去,这部分才真正涉及 CPU 具体指令的执行。

也就是说,如果你仅仅定义了一个变量 int a; 但是没有给它初始化的赋值操作,那么最终在 CPU 执行指令的时候,这个定义根本就没有任何体现。

四、指针

现在,让我们把内存清空,回到一开始的那一片净土上。

我们来搞点花样。我将我的密码(1234)存储在一个 short a 中,假设这个变量 a 被放在了 6 号格子处。

同时,我将这个变量 a 的地址,也就是 6 这个数字,存储在另一个变量 int p 中,假设这个变量 p 被放在了 1 号格子处。

这样,我寻找我密码的方式,就是先通过 p 所在的内存地址找到里面存的值,也就是 a 的内存地址 6,再通过 a 的内存地址找到里面存的值,也就是我要找的密码 1234。

我们可以用下面的代码来表示刚刚的存放逻辑。

shorta=1234;//假设a被放在了6号格子处intp=6;

这里的 p 和 a 都是变量,只不过,p 这个变量有点特殊,它里面存放的值是一个内存地址,我们把 p 这个变量形象地成为指针变量,简称指针。

不过,这样有几个问题,我一个个来说。

1. 取地址

首先,我们在编码阶段,无法知道也无需知道变量 a 会存放在哪里,不然就失去了标签的含义,又回到了需要关心具体的内存地址(也就是格子编号)的时代了。

所以,我们应该有个方法,来在编码阶段表示变量 a 的地址的含义,姑且就叫做 &a 吧。

那么我们的代码,就可以优化为:

shorta=1234;//假设a的地址是6//那么下面的p就等于6intp=&a;

用图来表示就是:

2. 指针变量本身的大小

视角放到这个变量 p 身上,虽然本质上这个变量 p 里面存放的就是一个数值,假设是 6,但是它却表示了一个内存地址的值。

如果让程序员随便规定这个变量 p 的数据类型(也就是占多少个字节),那显然容易出问题。

比如内存地址是 999,那么我用一个 char 类型的变量 p 来存放它,就会有问题。

我们在编码阶段是无法确定一个变量的内存地址是多少的,所以用什么类型的变量来存放它,也是无法判断的。

所以,最稳妥的办法就是,用一个完全能容纳所有内存地址范围的变量类型来存放指针变量。

我们姑且认为我们是在一个 32 位的系统上,那么用一个 4 字节大小的变量来存放,就可以了。(当然,实际上这取决于你的编译器的位数)

现在,我们的指针变量所占用的内存大小,就是固定的 4 个字节,也就是 4 个格子。

程序员无需也无法修改这个大小,那么我们就可以把 p 前面的数据类型去掉了。

shorta=1234;p=&a;

3. 指针变量的类型

刚刚我们解决了指针变量本身所占用的内存大小,但是还有一个问题没有解决,就是指针变量里存放的内存地址处的变量的大小。

也就是说,上面的指针变量 p 里虽然存放了变量 a 的内存地址 6,但是指针变量 p 却没有任何信息,来说明内存地址 6 处的变量,它的大小是多少。

假如,我们认为内存地址 6 处的变量是个 char 类型,也就是只占用了一个字节,那么显然,会取出一个不符合预期的值。

当然,如果认为 6 处的变量是个 int 类型,占 4 个字节,虽然数值上可能没有问题,但从某种程度上讲也是不太符合预期的(假如 8 号和 9 号格子里有其他内容,那就更不符合预期了)。

所以,必须得完全按照变量本身的类型,也就是 short 类型来读取此内存地址处的值,才是正确的。

那我们应该如何表示这个信息呢?即如何表示,变量 p 是一个指针,且这个指针里面存放的内存地址处的变量的类型是 short。

很好办,直接说答案吧。

shorta=1234;short*p=&a;

p 前面的 * 表示变量 p 是一个指针类型,再前面的 short 表示该指针指向的内存地址处的变量,是个 short 类型的变量。

当然,更准确的说法是,指针 p 将会按照 short 类型的变量来读取它指向的内存,至于那里到底是什么,无所谓。

注意哦,这个 short 并不是表示指针变量本身的大小占 2 个字节,指针变量本身我们前面说过了,就是固定的 4 字节大小。

不过总是这样说太绕口了,今后我们就说,变量 p 是个 short * 类型的指针,就可以了。

用上面的图形象地说就是,右边变量 a 蓝色的填充,表示 a 是个 short 类型,而外面的虚线框框,表示指针 p 按照 short 类型的变量来"解读"内存地址 6 处的数值。

两者相匹配了,就是"正确"的编程代码了。

当然,这里的"正确",是说给程序员听的,CPU 才不关心。

4. 指针所指向的值

上面我们已经可以获得某个变量的地址,比如获取 a 的地址就是:

&a

同时我们也可以定义一个指针变量,比如定义一个 short * 类型的指针变量 p:

short*p;

并且,我们通过直接赋值操作,可以给指针变量进行初始化:

p=&a;

当然,上面的代码也可以连起来写,即指针变量 p 的定义与初始化写在同一行:

short*p=&a;

不过,我们还没有一个方法,来表示指针变量 p 所指向的那块内存。

那我们就发明一个,比如想把 p 所指向的那块内存的值改为 999,可以这样写。

*p=999;

这里的 * 就表示"指向"的含义,即 *p 不是说 p 这个变量的内存地址,而是把 p 这个变量里存的内容当做内存地址来看,指向这个内存地址。

用图表示就是:

所以连起来一个完整的程序就是:

shorta=1234;//指针的定义short*p;//指针的初始化,也即指针变量本身的值p=&a;//指针变量所指向的内存地址的值*p=999;

执行过后,a 的值会变成 999,或者说 6 号格子与 7 号格子里的值会变成 999。

5. 指针的加减

如果对一个普通变量 +1,比如说:

inta=1;intb=a+1;

那显然,b 的值应该是 2,毫无疑问。

但是如果对一个指针变量 +1,会怎么样呢?

inta=1;int*p=&a;int*p2=p+1;

我们假设变量 a 放在了格子 1 处。

变量 a 的值是什么,以及变量 p 被放在了哪里,我们都不关心,就只盯着 p 的值看,显然,一开始的时候是 1。

(为方便演示,下面的图直接表示 p 所指向的内存地址,而不是 p 本身所在的内存地址)

我们先不考虑,p + 1 应该是几,如果让你来设计这个语言,你觉得 p + 1 是几比较好呢?

我认为,只有两种较为合理的设计。

第一种,p + 1 就等于 2,就简简单单当做数值进行加法运算而已。

第二种,p + 1 等于 5,即跨过一个 p 所指向的内存单元的数据类型的大小,也就是 4 字节的 int。

你觉得那种比较合理呢?

那显然是第二种嘛!不然和普通变量有啥区别了,你既然设计出了指针变量这个玩意,就需要让它发挥点方便程序员的作用,这才是你设计它的真正目的。

当然你不服,你就想让这个 int * 类型的指针变量,就真真正正在数值上只 +1,也就是让 p 等于 2,该怎么办呢?

很简单,分成三步就好了:

第一步,把 int * 类型的 p 强转为 char * 类型的 p。

第二步,p + 1。

第三步,再把 char * 类型的 p 强转为 int * 类型。

完事!用代码表示就是:

p=(int*)((char*)p+1);

你会看到,C 语言项目中经常使用这样的玩法。

当然,你这一顿花里胡哨的操作,在 CPU 眼里,就是对一个内存地址处的值简简单单地 +1 而已。

五、指针的本质

我们看上面的一张图:

其实,别看上面又 short * p 又 short a 的,这是给程序员和编译器看的。

在 CPU 眼里,根本没有这些眼花缭乱的标签,以及五花八门的解读,就是 0 ~ 4 号格子里存了个数字 6,然后 6 ~ 7 号格子里存了个数字 1234,仅此而已。

更进一步讲,其实就只是 1 号格子里存储了数字 6(234 号格子是空的),6 号格子里存储了数字 12,7 号格子里存储了数字 34。

(当然实际得转换成二进制,再结合大端序还是小端序来看哈,我这里就是简单直观告诉大家 CPU 才不管那么多,就一个格子一个格子的放数字就完事了)

所以,我们经常听书上讲,让大家一定要记住,指针变量中只能存放地址,不要将一个整数或任何其他非地址类型的数据赋给一个指针变量了。

这种说法就非常别扭,很多书上,即想讲清楚指针的本质,又想讲清楚指针的注意事项,混杂在一起,让读者即没有搞清楚指针的本质,又不知道指针的注意事项。

真纠结!

说实话,就光看书而没有经过大量 C 语言的实践,谁能记得住或者理解透彻那些注意事项。而经过大量 C 语言实践的人,指针早就融入进血液中了,谁还来看你讲指针的本质?所以说,这块我觉得非常之矛盾。

实际上,指针变量的本质和普通变量是一样的:

普通变量,写个 short a,是在告诉编译器,当我 a = 1 时,你给我找到一块 2 字节的内存,把 1 填充进去。

指针变量,写个 short * p,是在告诉编译器两件事情:

当我 p = xxx 时,你给我找到一块 4 字节的内存(我们假设指针本身的大小固定 4 字节),把 xxx 填充进去,这就和普通变量完全一样;

当我 *p = yyy 时,你给我找到 xxx 内存地址,并且按照 short 类型也就是 2 字节大小,把 yyy 填充到这里。

所以,谁说不能把一个整型变量赋给指针了,我这不就把一个整型变量 xxx 赋给指针 p 了么,我赋值的时候就说它是整型变量了,怎么的吧?

但是我用它的时候,我 *p 又把 xxx 看做是一个内存地址了,就去找内存 xxx 的地方,又怎么的吧?

用代码来表示就是:

我强行把一个整型数值 6 赋值给指针变量 p,然后 *p 去访问内存地址 6 并修改那个地方的值:

int*p=6;*p=999;

我还可以把一个地址值,强行赋值给一个普通变量:

inta=1;intb=&a;

这时普通变量 b 里面存储着 a 的地址,我 *b 也同样可以访问到 a 并修改它的值:

*b=999;

当然如果你真这么写编译器会报错,但没关系,我们可以先把普通变量 b 强转为指针变量,然后再 * 它:

*(int*)b=999;

你还可以玩些更花哨的,先 & 取地址,再 * 取值,虽然没啥用:

*((int*)*(&p))=999;

假如 a 的地址是 6 的话,其实你这些花里胡哨的操作,最后到人家 CPU 眼里,就是一条简单的指令:

movl$999,(6)

就是想把 999 放在 6 号格子嘛!

所以,不要把指针想得多么复杂和神圣,它就是方便了程序员编程,同时告诉编译器应该怎么编译成最终的指令。

你写了个 *p,就是把 p 的值当做内存地址去访问,在汇编语言层面就是加了个括号:

(p)

你写了个 &a,就是取出变量 a 的内存地址,在汇编语言层面就是 lea 指令:

leaa,xxx

你如果写了个 ***p 那就是,相当于加了三次括号:

(((p)))

当然啦,以上都是方便理解的伪指令,具体落实到真正的汇编语言,我会在后续的章节中讲述,直接从汇编语言理解指针,你就会发现指针就是个工具人而已。

六、写在最后

至此,我们的《你管这破玩意叫指针 -- 基础篇》就讲完了。

我们从最开始的内存格子出发,逐渐推导出类型系统和变量的作用,进而再引出本质上和普通变量没有任何区别的指针变量,最后再推导出指针变量相关的操作,带你看清了指针的本质。

你不要去记本文的知识点,重在整个推导的过程,要去理解指针想解决的问题是什么,它的合理性在哪,哪一部分信息是给程序员和编译器看的,哪一部分操作最终又是真正落实到 CPU 指令的,这些才是关键。

当然,我还是给你简单总结下知识点相关的部分,其实简单说,就这么几件事。

定义一个指针:

int*p;

赋值或初始化一个指针:

p=&a;

修改指针的内容:

*p=999;

指针的加减(其实到后面讲的数组才有价值):

p=p+1;

完事,就这些!

最后,给大家推荐两个网站。

一个是可以将 C 语言代码实时编译成汇编代码,你可以用它来自己玩指针做实验,看它最终到 CPU 指令层面是什么样。

https://godbolt.org

一个是 GNU C 手册,里面对各种语法和作用讲述的非常清楚,不要再用百度搜博客了。

https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html

比如讲类型系统里的整型类型:

再比如讲指针的定义和初始化:

我相信本文看下来,一定有人想问,short * p 是不是应该写成:

short*p

或者

short*p

自己去上面的文档里找答案即可。

OK,本文到这里就终于要结束了,在接下来的进阶篇里,我会讲述二级指针、数组、函数指针、字符串、结构体、结构体数组与指针等内容。

虽然说是进阶篇,但我认为,指针的本质反而是进阶,而指针的进阶反而是基础。

因为假如理解了上述的一切,下面的所谓指针进阶玩法,都可以通过指针的本质以及语言设计的合理性,推导出来,再往后无非是需要花时间熟练使用和掌握罢了。

所以,理解好今天的内容,非常重要!

敬请期待:

你管这破玩意叫指针 -- 进阶篇

你管这破玩意叫指针 -- 变态篇

标签: 指针变量 汇编语言 类型系统

上一篇 :

下一篇 :

你管这破玩意叫指针?

本系列分三篇,用破玩意的方式彻底理解好指针的本质:你管这破玩意叫指针--基础篇你管这破玩意叫指针--...

01-19 06:52:16

屠甸镇开展企业退休困难人员走访慰问 天天最新

屠甸镇开展企业退休困难人员走访慰问虎振雄风留浩气,兔迎盛世蔚新春。在这新春佳节来临之际,为弘扬尊...

01-18 21:07:18

世界聚焦:金融街:成功发行15亿元中期票据 票面利率为3.79%

中国网地产讯1月17日,据上清所披露,金融街控股股份有限公司于2023年1月12日至1月13日发行了金融街控股...

01-18 17:00:02

日本迅销集团首席执行官柳井正:日本应停止“给自己制造敌人”-世界动态

参考消息网1月18日报道《日本经济新闻》1月16日发表题为《迅销集团首席执行官柳井正专访:越是艰难时刻...

01-18 14:32:43

君实生物VV116上市申请获受理,国产新冠口服药加速“闯关” 每日观察

来源:21世纪经济报道临床前研究显示,VV116对包括奥密克戎在内的新冠病毒原始株和突变株表现出显著的抗...

01-18 10:40:57

嫦娥五号月壤揭示太阳风为月球带来可利用的水-聚焦

这是太阳风氢的注入、保存与扩散丢失模型图(2022年11月23日绘制)。新华社发(中国科学院地质与地球物...

01-18 07:51:24

61年人口首次负增长,只因中国房价太低? 焦点播报

小帮圈 财经‬点将录‬今天又有几组重要数据挂上了热搜:尤其是最值得大家关注的一个点:中国人口

01-17 21:45:22

《黑神话:悟空》或于明年夏季发售,官方整活明示玩家更新配置

作为游戏科学一年一度的惯例,今年《黑神话:悟空》的整活贺岁视频也在今天如约而至。和往年不同的是,...

01-17 17:06:29

全球速看:高口碑恋人 很会照顾对方感受的星座

每个人都希望有个温柔体贴的另一半,但不是每个人都如愿以偿。一个温柔体贴的人的确可以给对方带来十足...

01-17 14:37:09

美国加州一户住宅发生枪击事件 6人死亡-当前速看

当地时间16日,美国加州图莱里县(TulareCounty)一户住宅发生枪击事件,导致6人死亡,其中包括1名婴儿和1名

01-17 11:12:47

成飞集成01月16日获深股通增持25.81万股 环球精选

01月16日,成飞集成获深股通增持25 81万股,已连续3日获深股通增持,共计39 46万股

01-17 07:41:41

2023春节大连消费券有效期多久

问:2023大连新春消费券有效期多久?答:有效期3天。逾期未使用的消费券视为用户已使用,直接作废并重新...

01-16 20:22:26

校校有品牌!江汉区举办小学德育主任述职演说比赛 世界看热讯

校校有品牌!江汉区举办小学德育主任述职演说比赛---“做一天马可波罗,重走丝绸之路”“重阳诗词云萃”...

01-16 16:00:28

入列3周年 探寻南昌舰的胜战密码 最资讯

南昌舰是我国首艘万吨级驱逐舰,它的列装,标志着海军驱逐舰的发展实现由第三代向第四代的跨越。南昌舰...

01-16 10:57:42

天天视讯!早报: 三星S23系列价格曝光 马斯克回应车主维权

【手机中国早报】三星旗下的S23系列一直都是人们重点关注的对象,距离在售的S22系列发售已经过去将近一...

01-16 07:06:49

活力中国丨在绿色机遇中感受中国经济活力

活力中国,今天的关键词是绿色。在“碳达峰”“碳中和”目标的引领下,加快全面转型的中国经济,正涌动...

01-15 16:09:39

初中拟人的优美句子(汇总95句)

初中拟人的优美句子汇总88句1 春天,绿油油的小草苏醒了,它从土里钻了出来。2 小草不愿被大自然抛在...

01-15 00:47:25

天天热资讯!【装机科普日报】第24期:这台15年前的电脑如何升级才具有使用价值?

【1】前言真的会有人去用15年前的老电脑吗?当下淘宝LGA775接口处理器的月销量居然高达数千单,DDR2内存...

01-14 12:48:59

一年比一年差的名句子(通用127句) 当前速读

一年比一年差的名句子通用127句1 小黑豆让人印象深刻的不只是红色系列青春,还有他那不明不白的CBA之旅...

01-14 01:28:12

轻量化办公好助手 海兰推出QD系列商务一体机

并且,海兰QD系列商务一体机为满足轻量化办公需求,在硬件配置上也是精心选择,Intel第11代赛扬N5095处...

01-13 18:12:19

华绿生物:公司2022年经营业绩正在审计中|即时焦点

光伏发电项目目前仍在建设中

01-13 14:29:56

世界热头条丨尚太科技董秘回复:截至2023年1月10日,公司股东持有人数为52,548.00

尚太科技(001301)01月13日在投资者关系平台上答复了投资者关心的问题。

01-13 10:05:11

2023川渝春节联欢晚会看点剧透 天天热议

2023川渝春节联欢晚会看点剧透在小品《耙耳朵大英雄》中,面对突发情况、大是大非,川渝男人永远“雄起...

01-13 04:48:03

探访广东湛江高桥红树林自然保护区_世界播资讯

中新网广州1月12日电(唐贵江祝桂峰)“添绿又增金。”日前,记者在湛江市红树林志愿者陈治统陪同下,走进...

01-12 18:53:06

股份转让需要变更股东股权吗

1、变更股东是公司变更的项目中一类。变更出去的股东需要将股权转让给新进来的股东就是股权转让。股东变...

01-12 13:57:04

华斯股份董秘回复:公司子公司华斯生活购物广场超市有小部分销售预制菜

华斯股份(002494)01月12日在投资者关系平台上答复了投资者关心的问题。

01-12 10:36:50

原中房集团董事长,孟晓苏建议,中国老百姓去年又增加存款15万亿,如果让15万亿的存款,其中的三分之一

原中房集团董事长,孟晓苏建议,中国老百姓去年又增加存款15万亿,如果让15万亿的存款,其中的三分之一...

01-12 09:09:56

形容女孩长的高的句子(精选245句)

形容女孩长的高的句子精选38句1 没几天,“小非洲”的眼睛引起了我的注意:虽不大,但特别亮,特别有神...

01-12 03:45:16

最新快讯!网安龙头又被砸盘!距高点腰斩,董事长何朝曦财富缩水95亿

文|杨万里1 695万股东吃了一碗大面。1月11日,深信服低开低走,收盘下跌7 7%。截至发文,该公司股价为...

01-11 18:58:53

天成自控(603085)1月11日主力资金净买入120.86万元

截至2023年1月11日收盘,天成自控(603085)报收于11 33元,下跌0 87%,换手率0 64%,成交量2 39万手,成交额2754 32万元。

01-11 15:36:36

冬游贵州正当时冰雪引来八方客

云雾缥缈似仙境,银装素裹美如画,冬季的贵州别有一番风味,吸引着八方游客来赴冰雪之约。在高坡云顶滑雪...

01-11 10:14:29

每日关注!让文化遗产之美回归时尚现场

【一线讲述】让文化遗产之美回归时尚现场讲述人:国家对外文化贸易基地北京国际文化贸易服务中心副主任...

01-11 04:30:27

头条:【2023云南省两会】“新老委员”齐亮相 一起来听听他们的“好声音”

政协云南省第十三届委员会第一次会议在昆明海埂会堂开幕记者张彤摄1月10日上午9时,政协云南省第十三届...

01-10 20:05:08

1月10日华东地区己二酸行情回升

1月10日,华东地区己二酸回升,今日价格较之周初上涨百元上下。经销商多试探性高报。原料纯苯价格企稳反...

01-10 16:46:47

接连斩获两座大奖,王源唱作人身份再受肯定 天天讯息

年末注定是收获的季节,恭喜王源获得首届中国歌曲TOP排行榜“最佳新人奖”,这不仅是专业评委对王源首张...

01-10 15:56:05

银都股份: 银都餐饮设备股份有限公司关于变更公司注册资本修订公司章程并办理工商变更登记的公告-环球消息

银都股份:银都餐饮设备股份有限公司关于变更公司注册资本修订公司章程并办理工商变更登记的公告

01-10 13:40:39

网贷逾期21年无力偿还后果是什么

1、产生罚息这是金钱上的损失。如果信用贷款出现逾期,贷款机构会先电话催收贷款,提醒借款人还款,同时...

01-10 13:01:48

短讯!微粒贷网贷逾期19年会上征信吗

网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天...

01-10 12:45:28

2018济源市九级工伤赔偿标准_天天热消息

职工因工致残被鉴定为七级至十级伤残的,享受以下待遇:(一)从工伤保险基金按伤残等级支付一次性伤残...

01-10 12:29:04

夫妻一方毁容要判多少年

没有单独的什么毁容罪,必然是故意伤害罪第二百三十四条故意伤害他人身体的,处三年以下有期徒刑、拘役...

01-10 12:14:09

全球头条:2023-2028年中国香菇行业市场全景评估及投资战略规划研究报告

本报告由华经产业研究院出品,对中国香菇行业的发展现状、竞争格局及市场供需形势进行了具体分析,并从...

01-09 17:36:23

老詹重回迈阿密?美媒曝热火3换1重磅交易!希罗携手两首轮赴湖人 环球即时

老詹重回迈阿密?美媒曝热火3换1重磅交易!希罗携手两首轮赴湖人,韦德,老詹,热火队,迈阿密,湖人主场,勒...

01-09 17:46:55

张雨绮骑自行车,穿西装配短裤凹“下衣失踪”,这身材太养眼了 焦点速讯

“下衣失踪”的穿法,已经在圈内流行很久了,深受“腿精”女孩的喜欢。简单地说,利用一件较长的上衣,...

01-09 17:38:25

环球观热点:西媒:2023年俄乌局势的四种可能

参考消息网1月7日报道据《西班牙人报》网站2022年12月31日报道,2021年底时,只有美国情报部门认为俄罗...

01-09 14:09:02

海淀区工伤赔偿标准

职工因工致残被鉴定为一级至四级伤残的,保留劳动关系,退出工作岗位,享受以下待遇:(一)从工伤保险...

01-09 13:14:41

港股异动 | 雅迪控股(01585)涨超6% 机构看好市场扩容+格局优化 爱玛预期全年纯利最多增长2倍

雅迪控股(01585)午后涨超6%,截至发稿,涨6 43%,报15 22港元,成交额1 52亿港元。消息面上,天风证...

01-09 10:56:02

科学家们发现了一种新的哮喘触发因素:性活动

最近在肯塔基州路易斯维尔举行的美国过敏、哮喘和免疫学学院年度科学会议上提出的一项研究表明,性活动...

01-07 01:39:23

新华财经早报:1月5日

【重点关注】•人民银行:精准有力实施好稳健的货币政策•外汇局:深化外汇领域改革开放防范跨境资金流...

01-06 22:57:35

环球观察:2022年A股回购的历史之最,为新的一年带来什么信号?

2022年的旅程已经画下句号,这一年我们在股市中经历了种种波动。有人说“股市虐我千百遍,我待股市如初...

01-06 20:44:44

静注人免疫球蛋白库存告急 专家提醒:此“蛋白”非彼“蛋白” 不含抗击新冠病毒功效|最新

继对乙酰氨基酚等新冠对症治疗药物后,血液制品静注人免疫球蛋白(pH4)又遭遇一波“囤药”行情。记者了解...

01-06 18:15:07

2023佛山中小学教师资格考试笔试报名指南|环球播资讯
1月5日基金净值:国泰智能汽车股票A最新净值2.275,涨3.69% 全球今日讯
中电光谷(00798.HK)涨超5%,截至发稿,涨5.19%,报0.405港元,总市值30.68亿港元
2023年01月05日11时商丘市短期天气预报
每日看点!库里恢复情况良好 预计在1月14日对阵马刺复出
新锐股份(688257):非职工代表监事辞职及补选监事
奥普光电:公司暂未收到长光辰芯增资扩股相关通知 全球球精选
世界快看点丨创历史新高 渤海油田年度天然气产量近35亿立方米
还呗借款逾期三天延迟还款征信有什么影响
迟到了舞蹈魔鬼教练的惩罚作文(优选8篇)
徐工机械二十余台设备参与柬埔寨31号和33号公路升级改造项目
每日焦点!承德露露:廊坊工厂目前仍处于停产状态 目前产能主要集中在承德及郑州工厂
2023年临桂城区公办义务教育学校转学插班工作安排-天天速读
浙江台州政企合力留人过年 真金白银稳岗留工促经济_全球热闻
阳过的人短期内会再感染XBB吗?该毒株主要攻击脑部和肠道?专家解读-世界消息
当前消息!记忆的句子经典语录(精选417句)
速看:美国Verizon的3G CDMA网络正式关闭,旧手机现已无法拨打电话
基围虾怎么养活 基围虾如何养殖
全球观察:罪魁祸首
怎样认定抚养关系
粤港澳大湾区跨境争议调解示范规则,昨正式发布及施行
当前热门:证监会发布关于修改《科创属性评价指引(试行)》的决定
长沙银行e钱庄医保卡开卡指南(入口+流程) 今日快看
环球热点!同庆楼(605108)12月30日主力资金净买入765.54万元
39家公司全年业绩预增 全球今日讯
乔丹康扣 Air Jordan 11 Retro Concord 黑白后跟45刺绣篮球鞋
【环球时快讯】江苏卫视跨年演唱会2022-2023节目单公布了吗
当前动态:区块链司法应用重要场景,最高人民法院电子送达的文书可在司法链平台在线核验
武汉九价宫颈癌疫苗接种点
2022襄阳轻微工伤怎么计算
每日观察!中国金融发展(03623.HK)拟3698万元出售广东睦湃科技12.9%权益
环球聚焦:通过努力成功的句子精选338句
焦点信息:2023焦作元旦门票优惠景点有哪些?持续更新
晶澳科技于江苏盐城设新公司,注册资本15亿
叙外交部:将外国军队驱逐出并非遥不可及
12月27日基金净值:广发沪港深新起点股票A最新净值1.2608,跌0.25%-全球观速讯
战略聚焦十大赛道,将供应链的红旗插遍全中国 环球观焦点
全球新动态:2022清明上河园免门票活动(时间+门票预约)
焦点速讯:昭通市鲁甸县产假多长时间
迎丰股份: 迎丰股份关于完成董事会、监事会换届选举的公告
“阳过”理发师害怕传染阴性顾客,拒为其理发,回应:担心自己还携带病毒
全球头条:中国工程院院长李晓红人民日报撰文:强化企业科技创新主体地位
体坛噩耗!王一博去世,享年27岁,曾获全国冠军
合同履行担保如何写 资讯推荐
当前快看:京东金条借款逾期七天延迟还款影响征信吗
观热点:亚洲首笔可持续表现挂钩“双认证”贷款达成,这家公司靠什么?
新疆沙雅县:梭梭下种植大芸 生态经济双丰收 环球今热点
安鑫花贷款有逾期记录还清之后会上征信吗
门头沟区工伤鉴定律师如何收费 动态
焦点播报:十年“药王”将落幕:药企们如何应对专利悬崖挑战?
x 广告
x 广告

Copyright ©  2015-2022 起点纤维网版权所有  备案号:皖ICP备2022009963号-12   联系邮箱: 39 60 29 14 2@qq.com