指针——字符指针

一,代码尝试

看一段代码,你认为的结果是什么呢?

#include<stdio.h>
//1-1字符指针(内存存放)
int main()
{
	char str1[] = "hello";//数组str1
	char str2[] = "hello";//数组str2
	char* str3 = "hello";//指针str3
	char* str4 = "hello";//指针str4
	if (str1 == str2)
		printf("same\n");
	else
		printf("not\n");
	if (str3 == str4)
		printf("same\n");
	else
		printf("not\n");
	return 0;
}

或许看到这串代码,你完全没有思路去解决,但不要着急,跟着小编的步伐走,最后你一定能够理解的!!!

二,基本知识

(1)字符指针的两种不同指向

           1.指向地址:如下

char ch = 'a' ; //定义一个字符变量ch,赋值为 'a'

char *pc = &ch ;//定义一个字符指针指向变量ch的地址

           2.指向字符串:如下

char* pa = "hello" ; //定义一个指针指向字符串

(需要注意的是该处的字符串为常量字符串,是不可更改的)

三,图片分析上述代码

(1)首先来看两个数组 arr1 和 arr2

(2)再来看两个指针

(四)代码再次分析注释

#include<stdio.h>
//1-1字符指针(内存存放)
int main()
{
	char str1[] = "hello";//数组str1,开辟一块内存空间1,用来存放hello
	char str2[] = "hello";//数组str2,开辟一块内存空间2,用来存放hello
	char* str3 = "hello";//指针str3,指向原本hello所在内存首元素地址,由于hello为常量字符串,
	//所以在内存中只开发一块空间,即str3和str4指向的地址一样
	char* str4 = "hello";//指针str4,指向原本hello所在内存首元素地址
	if (str1 == str2)
		printf("same\n");//不打印,由于是str1和str2地址不同
	else
		printf("not\n");//打印
	if (str3 == str4)
		printf("same\n");//打印
	else
		printf("not\n");//不打印
	return 0;
}

(本文章来自于小编学习总结,如有与其他视频教学内容重复请见谅)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值