指针——字符指针

一,代码尝试

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

#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;
}

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

指针是C编程语言中非常重要的概念之一,对于初学者来说可能会感到害怕和困惑。但只要理解了指针的原理和用法,就会发现它其实并不可怕。 首先,指针是一个存储变量地址的变量,它可以指向任何数据类型的变量,包括整型、浮点型、字符型等等。我们可以通过指针访问变量的值,也可以通过指针修改变量的值,这是指针的一大优势。 其次,理解指针的应用场景能够帮助我们更好地使用它。比如,当我们需要在函数之间传递大量的数据时,通过传递指针可以提高程序的执行效率。另外,在动态内存分配和释放中,指针也是一个必不可少的工具。 理解指针的用法也是很重要的。首先,我们需要理解指针的声明和初始化。指针的声明使用“类型 * 变量名”的语法,例如 int *ptr; 表示声明了一个指向整型变量的指针指针的初始化可以通过给指针赋值一个变量的地址或者通过取地址符&获取变量的地址。 然后,我们需要了解指针的运算。指针可以进行四种基本的运算:取地址运算符&,取值运算符*,指针加法和指针减法。取地址运算符&用于获取变量的地址,取值运算符*用于获取指针所指向的变量的值。指针加法和指针减法用于指针地址的增加和减少,不同数据类型的指针相加或相减会有不同的结果。 最后,我们需要注意指针的安全性。在使用指针的过程中,需要特别小心避免空指针、野指针等问题的出现,因为这些问题容易引发程序的崩溃或者产生不可预知的结果。 总结来说,指针作为C语言中的重要概念,我们应该尽早学习和掌握。只要理解指针的原理和用法,我们就能够更加灵活地操作内存,提高程序的效率和功能。通过不断的实践和学习,我们可以逐渐摆脱对指针的恐惧,让指针成为我们编程的得力助手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值