辐射4武器获取前期:C++ 简单的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 00:06:10
int fun(char* data)
{
int max,i;
if(data==NULL)return -1;
for(i=0;data[i]!=0;i++)//这里data[i]!=0;的0表示什么
{
if(*(data+i)>=*(data+i+1))
max=i+1;
}
return max;

}

绝倒………………
传入函数的是个char*,是个字符串,所以for(i=0;data[i]!=0;i++)是判断是否已经到达字符串结尾符\0
因为\0实际的值就是0。

数组在未赋值时,全部默认为“0”,
如 int a[10]={1,2,3}
则a[3]及以后的数字默认为 “0”

char* data中的data是指向字符串的指针.data[i]是第i个元素,字符串的最后一个字符在内存中是'\0'.其中for(i=0;data[i]!=0;i++) 中的data[i]!=0:就是data[i]不是字符串的最后一个字符.
这是一个计算字符串字符个数的程序.

数组下标,0是指数组的第一个元素

在你这个程序中,0应该是字符串结束符或空字符.

看来这个函数的功能是得到传入字符串中ASCII码最大的那个字符在串中的位置。