浅谈指针进阶——字符指针

指针进阶——字符指针

一般使用:

int main()
{
	char ch = 'w';
	char *pc = &ch;
	printf("%c\n", *pc);//*pc = 'w';

	return 0;
}

方法二:

int main()
{
	char* pstr = "hello bit.";
	printf("%s\n", pstr);

	return 0;
}

方法二是将常量字符串的首地址放在了指针变量pstr中

面试题

#include <stdio.h>
int main()
{
	char str1[] = "hello bit.";
	char str2[] = "hello bit.";
	char *str3 = "hello bit.";
	char *str4 = "hello bit.";
	if (str1 == str2)
		printf("str1 and str2 are same\n");
	else
		printf("str1 and str2 are not same\n");

	if (str3 == str4)
		printf("str3 and str4 are same\n");
	else
		printf("str3 and str4 are not same\n");

	return 0;
}

分析
  str1和str2是将两个相同的字符串存入到两个不同地址下的数组,因此,对比的时候由于数组的首元素的地址不同,结果是不同的。而str3和str4指向的都是常量区里的相同一串字符串,并且将这段字符串的首地址存在里面,因此,str3和str4比较是相等的。

猜你喜欢

转载自blog.csdn.net/weixin_43580319/article/details/111794556