今天看到一个题目,是这样的

是一个函数

int aaa(char * s)
{
char *t = s;

while(*t++)
t--;
return (t -s);
}


问的是这个函数是什么功能。。选项是返回s字符串字节,s字符串长度什么的。一共四个答案,我不记得了。
...全文
167 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yajuie 2015-09-21
  • 打赏
  • 举报
回复
如果是面试。这应该是故意引导,如果是考试。楼主的题一定抄错了。
苏叔叔 2015-09-20
  • 打赏
  • 举报
回复
测试一下:

int aaa(char * s)
{
	char *t = s;
	while (*t++);     //添加分号
	t--;
	return (t - s);
}
int main(void)
{
	char *s = "zhangxiang";
	printf("%d %d\n", aaa(s), strlen(s));
	return 0;
}
//10 10
等同于strlen函数
lkjasdf9909 2015-09-20
  • 打赏
  • 举报
回复
int aaa(char * s) { char *t = s; while(*t++); t--; return (t -s); } while(*t++);少了一个分号,要不然while()循环是退不出来的
大漠孤鸿 2015-09-20
  • 打赏
  • 举报
回复
若s非空,死循环了,若s空,程序存在大bug。
欧阳春晖 2015-09-20
  • 打赏
  • 举报
回复
首先,你的程序抄都抄错,少了个分号都没发现? 话回正题,这个程序的目的是计算字符串长度啊。
707wk 2015-09-20
  • 打赏
  • 举报
回复
引用 5 楼 paschen 的回复:
while后漏了一个分号就量死循环 如果加上分号就是计算字符串长度 t-- 是为了减去最后判断字符串末尾的0时做的++运算
+1
paschen 2015-09-20
  • 打赏
  • 举报
回复
while后漏了一个分号就量死循环 如果加上分号就是计算字符串长度 t-- 是为了减去最后判断字符串末尾的0时做的++运算

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧