c语言中p2=str+strlen(str)-1是什么意思

如题所述

看来str是字符串数组名,这里当指针用;strlen(str)-1是求出字符串str的长度再-1,其值就将长度变成了下标值;str+strlen(str)-1就求出了字符串数组最后一个有效位('\0'前面的那个)的地址;p2=str+strlen(str)-1就是把这最后一位的地址(指针)赋给指针p2。换句话说,就是让指针p2指向字符串str的最后一个有效字符。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-03
str是字符串数组的数组名,而数组名就是最开始的地址的地址(这个是地址不是别的,PS:再次强调这个地址),字符每个占一个字节,那么算出长度在减1就是一共有多少个字符,为什么要减一是应该在算长度是把\0也算出来了,那么首地址加上总长度就是最后一个字符的地址了。追问

哦,有点理解了,谢谢哈

第2个回答  2013-11-04
p2指向str的最后一个字符
第3个回答  2013-11-03
没上下文怎么知道
第4个回答  推荐于2016-01-03
1、这里str是字符串数组名,这里当指针用;strlen(str)-1是求出字符串str的长度再-1,其值就将长度变成了下标值。
2、str+strlen(str)-1就求出了字符串数组最后一个有效位('\0'前面的那个)的地址;p2=str+strlen(str)-1就是把这最后一位的地址(指针)赋给指针p2。换句话说,就是让指针p2指向字符串str的最后一个有效字符。