黑马程序员技术交流社区
标题:
利用指针变量计算字符串长度问题
[打印本页]
作者:
流转少年
时间:
2015-3-29 20:24
标题:
利用指针变量计算字符串长度问题
#include <stdio.h>
/*
(不包括\0)
编写一个int string_len(char *s),返回字符串s的字符长度
*/
int string_len(char *s);
int main()
{
int size = string_len("tre777");
printf("%d\n", size);
return 0;
}
int string_len(char *s)
{
// 1.定义一个新的指针变量指向首字符
char *p = s;
/*
while ( *s != '\0' )
{
s++;
}*/
while ( *s++ ) ;
return s - p - 1;
}
复制代码
这是C语言的一道练习,在定义新的函数的时候,用得时指针变量来计算字符长度的。有疑惑,希望大神们帮忙解答
问题一:在定义新的函数内部,定义了一个指针变量p指向s,也就是字符串的首字符,在这个里面,p存放的应该是首字符的地址吧?
问题二:在用while循环时,*s++指的是不是*(s++)?在这个过程中,指针变量s的值应该也是地址吧?
问题三:如果上面两个问题中,p和s存放的都是地址,怎么用s - p - 1来计算的字符串长度呢?
这个函数可以用其它方法解决,我是想搞懂这个方法的原理,谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2