malloc怎么用_为什么C语言中的字符串可以用指针表示?

27430470f97d4c17cc1cf014a98bd4d2.png

么很多人不爱学C语言那?因为C语言里有个概念叫指针,有时候一个指针还不够,还要来个双重指针,不熟悉的人不要说写代码了,看着就迷糊,而实际上指针不就是个地址嘛。

我们都知道程序在运行的时候变量是存储在内存中的,如何去访问这些数据那?就需要用到内存地址,内存地址是一个十六进制的数字,比如说0x403024这就可以表示一个变量,拿这个东西也可以访问变量,但是如果变量都长这个样子,那程序员可就惨了,所以指针出现了,它可以给变量起一个别人,尤其是字符串,字符串的变量名就是字符换首字符的指针,给大家举一个小例子。

025160170e68aeed58229c111c0cffa4.png

我这是定义了一个字符串,然后输出了一下,在输出的时候我用到了cesh这个变量名,这个变量名的实质是a的指针,不信我给大家演示一下。

a00dcd22c26079c9563ab433ae967057.png

加一个星号之后原形毕露,*是指针变量的标志,指针变量前面加*可以把指针指向的变量输出出来,指针还可以做加减法,比如我让指针加1,它指向的变量就会发生变化。

38304c66cc4f6bf711056e718ef61ee1.png

加1之后它指向的变量就变成了b,在有些时候,可以直接用指针来声明字符串,比如:

fd6b06152b0e548b38436c0e96d0ba5e.png

但有些时候我们发现指针还不太好用,比如说下面这种情况。

8c0783046db7d16ce28f75be8f5ff493.png

我声明了一个字符型指针,却不能接受用户输入的数据,这是为什么那?因为指针只能指向已经存在的变量,它只是个别名,就比如说王明托洛夫斯基维斯的别名叫小明,这个小明之所以存在是因为王明托洛夫斯基维斯的存在,如果只有一个小明,它什么也指代不了,这个问题应该怎么解决那?在声明指针的时候,再开辟一块内存空间,这样指针存在就有意义了,比如说下面这样。

873e1616befe50f03c70a86083a83c8b.png

malloc的意思是动态开辟内存,它返回的是一个没有类型的指针,C语言牛就牛在内存管理上了,python再灵活但是用不了指针,所以python写不了操作系统但是C语言可以。

总结一下,字符串的指针就是字符串第一个字符的地址,你记住这句话,这篇文章其他的就都不用看了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值