C语言选择题 第八题 char *t=s是什么意思? t-s-1 是什么意思

C语言选择题第八题char*t=s是什么意思?t-s-1是什么意思?t和s不是指针吗?怎么可以做减法?... C语言选择题 第八题 char *t=s是什么意思? t-s-1 是什么意思?t和s不是指针吗?怎么可以做减法? 展开
 我来答
不是会员的用户
推荐于2018-04-26 · TA获得超过235个赞
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:109万
展开全部
因为参数是一个指针,char *t=s;就是定义一个指向char的指针并初始化为s相同的地址,也就是指向同一对象。
地址之间是可以进行加减法运算的,两个相同类型指针之间的减法返回两指针之间的距离(char对象数),为ptrdiff_t类型,实质是int类型,再减去1就是这个距离再减1,这题答案应该是c
mzjiaopen2013
2017-12-10 · TA获得超过712个赞
知道小有建树答主
回答量:148
采纳率:88%
帮助的人:72万
展开全部
我看答案应该选C
s是一个字符串指针
char *t=s 把字符串指针的首地址赋给t,*t++ 先取值,再进行自增操作,t指向的地址从s一直到字符串的最后一个位置。t每次加的时候按照元素的长度来进行自增操作,由于while的判断多加了一次,故最后循环执行完毕的时候t所指向的位置应该是字符串长度最后一个位置+1。所以t-s-1 刚好是字符串的长度
指针也是一个值,当然可以做加减,t++都可以做,为什么不能做减法呢
t++ 和 t+= 元素所占字节长度 是一个意思
不懂追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自我编程
2017-12-05 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部
应该选C 字符串长度
s始终指向字符串首地址
*t++ *和++是平级运算符 从右往左, 所以t指向地址最后指到字符串最后结束符 \0
如果字符串是5个,那t就指定到第6个地址
因为地址值是连续的,所以t-s-1 得到的就是长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e608075
2014-06-24 · TA获得超过243个赞
知道小有建树答主
回答量:302
采纳率:57%
帮助的人:133万
展开全部
char *t = s是是字符指针指向字符串s
追答
那个是计算距离
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cw201002
2014-06-24 · 超过31用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:71万
展开全部
t和s是字符指针,存放的是内存的地址值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式