C语言的while(*p) while()取地址
代码如下如何理解
按理说 while里应该是个表达式 如while(condition){} while(i>10){语句体} 但下面代码 看着晕的不行
增加:
注意这里的 condition 的指针类型必须是 基本数据类型如果是结构体则会报错:
char *str5 = "how are you";
//str5[0] = 's'; //无法修改报错
//截取字符串
str5 += 3;//取到how后面的空格
while (*str5) //如果 *str5 ==0这个循环就结束了
{
printf("%c",*str5);
str5++;
}
printf("\n");
printf("%#x\n",str5);
printf("%c\n",*str5); //拿到第一个字符
输出的结果是:
代码修改如下:
char *str5 = "how are you";
//str5[0] = 's'; //无法修改报错
//截取字符串
str5 += 3;//取到how后面的空格
//while (*str5) //如果 *str5 ==0这个循环就结束了
//{
// printf("%c",*str5);
// str5++;
//}
while (*str5 != '\0') // \0代表结束
{
printf("%c", *str5);
str5++;
}
printf("\n");
printf("%#x\n",str5);
printf("%c\n",*str5); //拿到第一个字符
运行结果:
其实 c语言中的 while(*p){} 等价于 while(*p!=’\0’);