C语言——字符指针变量

字符指针变量是指向字符型数据的指针,也可以说是指向字符串的指针。在C语言中,由于字符串以空字符'\0'结尾,因此字符串通常被视为字符数组,因而可以使用指向字符的指针来对字符串进行操作。

下面是一个简单的示例,演示了字符指针变量的使用:

#include<stdio.h>
//字符指针的使用

int main()
{
	char str[] = "Hello World!";//定义一个字符串数组
	char* ptr = str;//定义一个指针变量,指向字符串数组的首字符

	while (*ptr != '\0')//在遇到空字符前,循环下面的操作
	{
		printf("%c", *ptr);//打印指针内容
		ptr++;//指针后移,指向下一个字符
	}

	return 0;
}

在这个示例中,str 是一个字符串数组,存储了 "Hello, World!" 这个字符串。然后,我们定义了一个字符指针变量 ptr,将其指向 str 字符串的首字符。接着,使用 while 循环遍历指针 ptr 所指向的字符,直到遇到字符串的结束符号 '\0'。

我们再来看一个《剑指offer》中收录的一道和字符串相关的笔试题

char str1[] = "Hello world!";
char str2[] = "Hello world!";
const char* ptr1 = "Hello world!";
const char* ptr2 = "Hello world!";

if (str1 == str2)
{
	printf("str1 and str2 are same!\n");
}
else
{
	printf("str1 and str2 are not same!\n");
}

if (ptr1 == ptr2)
{
	printf("ptr1 and ptr2 are same!\n");
}
else
{
	printf("ptr1 and ptr2 are not same!\n");
}

上面这段代码执行的结果是:

str1 and str2 are not same!
ptr1 and ptr2 are same!

这是因为ptr1和ptr2指向的是同一个字符串常量,在C语言中会把字符串常量单独放到一块内存区域,当几个指针指向同一个字符串常量时 ,它们指向的实际是同一块内存。但是,用相同的字符串常量去初始化不同的数组时,会存放到不同的内存区域。

更多C语言相关练习请访问:test_c: C语言练习,包括常见语法练习以及小项目练习。 (gitee.com)

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值