C语言 15题解释一下 如图所示,c语言编程,求解第14,15题,解释一下过程,感激...

作者&投稿:后庙 (若有异议请与网页底部的电邮联系)
在c语言中,数据溢出不报错、不报警、不抛异常,而是直接截断。
short数据类型仅有2个字节,所以向其赋值0xabcde时,仅能容纳低位的两个字节0xbcde,儿高位的0xa0000,被截断后直接丢弃了。

short :短整型数据类型,目前C语言对该类型数据长度的定义 与 int型(整型)一致。在8位系统、16位系统中,均为 16位长度。
所以,在赋值过程(x=0xabcde)中,它只取低16位结果。即x=0xbcde,选D

求C语言大神讲解一下15题的过程〔要详细哦〕~

*和++两个处于同一优先级,结合方向是自右向左
s1和s2指向字符串首地址 *s2++ 是先取出s2指向地址的一个字符 然后再将s2地址自动加1
B中s2[n-1]表示的是去字符串中第n个字符
C中*(s2+n-1)和 B是一个意思
D中*(++s2)是先将s2自增 再取s2地址对应的字符 这样取字符的时候就跳过了第一个字符

14答案:a[7],因为P指向a[3],p4是p向下移动4个int的距离,即a[3]移动4个距离,为a[7].
15答案:5.p1-p2代表p1与p2相隔几个sizeof(double)的距离,这里显然是5