字符串和字符数组

字符串常量和字符数组

在c语言中,对于字符和字符串的处理极其频繁,但是在c语言中是没有字符串类型的,字符串通常放在常量字符串中或者字符串数组中,两者之前也是存在着差别,字符串常量是储存在常量空间中的不能被修改的,而字符数组存放在数组空间中,可以被修改。

1、char *a = “abcd”;

在这里插入图片描述
由上述可知,ch是一个是一个char*类型的指针变量,他的值是可以改变的(即他指向的空间可以改变)。

2. char b[ ] = " abcd " ;

在这里插入图片描述
ch是在栈区中开辟空间并储存的字符数组,但是ch本身是这个char型数组的数组名,是一个常量,不能被修改,但是ch是一个字符数组,数组内存储的数据是可以被修改的。

总结:

char*是变量,值可以改!
char[]是常量,值不能改变!

解释:
a是一个char型指针变量,其值(即指向)可以改变;
b是一个char型数组的名字,也是该数组首元素的地址,是常量,其值不可以改变
char[]对应的内存区域总是可写,char*指向的区域有时可写,有时只读
解释:
       a指向的是一个字符串常量,即指向的内存区域只读;
       b始终指向他所代表的数组在内存中的位置,始终可写!
注:

char *本身是一个字符指针变量,但是它既可以指向字符串常量,又可以指向字符串变量,指向的类型决定了对应的字符串能不能改变!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值