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’);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值