在*(s+i) != '\0'这个表达式中,s为char *类型的指针,或一维数组的数组名。 i为整数数值。当然,也可能是反过来,i为char *, s为int。 不过在C语言的命名时,将s定义为字符串(string), i定义为整型(int)是常用的做法。
于是这里,*(s+i)就是取s上第i个元素的值,等同于s[i]。
'\0'为转义字符,其ascii码值为0,在C语言中,是约定的字符串结束符。
!=代表逻辑不等于运算,当!=两侧值相等时,值为假,否则值为真。
于是,这个表达式就是判断s上第i个元素是否为字符串结束符,如果是则表达式为假,否则表达式为真。
如果i不等于0成立那么表达式的为真 1
如果i不等于0不成立那么表达式的为假 0
#include
#include
void main()
{
int i = 2;
if (i != 0)
{
printf("2不等于0 \n");
}
if(i==0)
{
printf("2等于0 \n");
}
if (0)
{
printf("if(0)执行了\n");
}
if(1)
{
printf("if(1)执行了\n");
}
system("pause");
}
每个字符串都以'\0'结尾,*(s+i)表示字符串第i个字符,所以*(s+i)!='\0'判断是否到结尾。
100表示数组c的大小,可以根据你的字符长度改变。100表示可以输入100个字符。
可以不用数组,比如C++的string,就是动态的字符串,长度不用限定。