黑马程序员技术交流社区
标题:
有没有人给我分析下这道题!!
[打印本页]
作者:
shane_west
时间:
2015-4-13 23:25
标题:
有没有人给我分析下这道题!!
// 练习:编写一个int string_len(char *s),返回字符串s的字符长度(不包括\0)
#include <stdio.h>
int string_len(char *s)
{
// 1.定义一个新的指针变量指向首字符
char *p = s;
while ( *s++ ) ;
return s - p - 1;
}
int main()
{
char *name = "itcast男";
int v = string_len(name);
printf("%d\n", v);
return 0;
}
复制代码
作者:
dyb_10101
时间:
2015-4-16 16:23
主要讲解 int str_len()函数:
将name传入此函数后,指针s和指针p都指向name的开头字母的内存地址;然后*s++开始遍历每个字母的值是否为真,又因为字符串以\0结束,并且 \0 的ASC码值为0,所以此时停止遍历,但是此时指针 s 保存的内存地址是 \0 的地址,所以是 return s-p-1;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2