while(*t++)问题
发布网友
发布时间:2023-04-14 14:19
我来回答
共4个回答
热心网友
时间:2023-10-12 04:47
这是一个求字符串长度的程序。
首先定义一个指针指向字符串的首地址。
while(*t++);
就是说在*t还没到字符串末尾时t会往后。
在*t=='\0'时,t最后执行一次t++
然后返回t到s的距离。
意思是字符串s到其末尾'\0'中间经历的字符数。(包含'\0')
----------------------------------------------------
strlen计算的长度是不包含'\0'的;所以可能在你看来这个函数计算的长度多1。
O(∩_∩)O~
-----------------------------------------------------
如果你认为字符串长度不应该包含'\0',那么这个函数算得字符串长度就多了1。如果你认为可以包含'\0',那么这个就只是和strlen不同的另一种表示形式。只是说法上的区别而已。
热心网友
时间:2023-10-12 04:48
t=s;[t指向字符串首地址,假设字符串是"abc"]
判断*t不等于0是否成立,无论结果是否成立,计算t++[t指向'b'],前面判断结果成立,开始循环
判断*t不等于0是否成立,计算t++[t指向'c'],前面判断结果成立,继续循环
判断*t不等于0是否成立,计算t++[t指向字符串末尾的0],前面判断结果成立,继续循环
判断*t不等于0是否成立,计算t++[t指向字符串末尾的0后面],前面判断结果不成立,结束循环
返回值: t位置减去首字符位置应当是字符串内字符数+1,或者说这个字符串占用了数组元素个数
热心网友
时间:2023-10-12 04:48
这个函数用来判断字符串的长度。
你要计算一个字符串的长度,把首地址传进来,while(*t++);的意思是如果*t不是字符串结尾(\0)就向后移一个字符。
热心网友
时间:2023-10-12 04:49
楼主错了,这段程序是指计算字符串占用内存字节个数