指针运算符*(间接寻址符)的优先级低于自增运算符
*lower++; 这条语句意为指针lower指向下一个内存,然后取其地址
(*lower)++; 真正想要让指针指向的内容自增应该加个括号
另外,如果想要通过一个无返回值的函数改变变量的值,或者想通过一个函数改变多个变量的值,就可以用这种方法,将指向变量的指针作为函数的形参
void count(char * str, int * upper, int *lower, int *space, int *num, int*other)
{
int i;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z')
{
(*upper)++;
}
else if(str[i]>='a'&&str[i]<='z')
{
(*lower)++;
}
else if(str[i]==' ')
{
(*space)++;
}
else if(str[i]>='0'&&str[i]<='9')
{
(*num)++;
}
else
{
(*other)++;
}
}
}
另外也可以设置全局变量来在无返回值函数中对变量的值进行操作
本文解析了指针运算符*的优先级,并指出其在`*lower++;`中的作用。讲解了如何正确使用自增运算符,同时介绍了无返回值函数中通过指针改变变量值的方法,以`count`函数为例。还讨论了设置全局变量在函数操作变量的应用。
5436

被折叠的 条评论
为什么被折叠?



