请问这个是'指针'么?

wonkju 2014-07-06 02:09:30
find_char( char **strings, char value )
{
char *string; /* the string we're looking at */

/*
** For each string in the list ...
*/
while( ( string = *strings++ ) != NULL ){
/*
** Look at each character in the string to see if
** it is the one we want.
*/
while( *string != '\0' ){
if( *string++ == value )
return TRUE;
}
}
return FALSE;
}

这段代码是 <pointers on c>中的, 我的疑问是 ' *string'存储的不是 一级指针么(即存储的是对实际字符的地址)么?,怎么和 '\0'比较呀?
...全文
173 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-07-07
  • 打赏
  • 举报
回复
*a等价于a[0]
ImAmelie 2014-07-06
  • 打赏
  • 举报
回复
楼主说的对 string存的是实际字符的地址 楼主的问题出在

*
这个运算符上 这个运算符叫指针运算符,也称间接访问运算符 *string 表示“string指向的对象”即string指针变量里的地址指向的字符型变量 *string != '\0' 这样就意味着 string指向的字符型变量与'\0'比较
  • 打赏
  • 举报
回复
我比较纳闷的是第一个while有什么用,if不就好了吗??
zhuyf87 2014-07-06
  • 打赏
  • 举报
回复
strings是char ** string = *strings 所以string是char * 那*string就是char了。
wonkju 2014-07-06
  • 打赏
  • 举报
回复
我也看错了, string和 strings...
wonkju 2014-07-06
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
strings相当于二维数组。 每个元素是一个字符数组(string) string是一个一维数组(value) value是单个字符。
完全出乎意料,入门c中,谢了...版主...
wonkju 2014-07-06
  • 打赏
  • 举报
回复
引用 1 楼 lin5161678 的回复:
char	*string;	/* the string we're looking at */
string是char* *string是char
入门c中,天呀.完全不懂,得把指针和字符串看了先...谢了...
threenewbee 2014-07-06
  • 打赏
  • 举报
回复
strings相当于二维数组。 每个元素是一个字符数组(string) string是一个一维数组(value) value是单个字符。
lin5161678 2014-07-06
  • 打赏
  • 举报
回复
char	*string;	/* the string we're looking at */
string是char* *string是char

69,371

社区成员

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

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