详细了解指针与字符串的关系

一、字符串

字符串是以ASCII字符NUL结尾的字符序列。ASCII字符NUL表示为 \0 。
在这里插入图片描述
在这里插入图片描述

1.1字符串声明:字面量、字符数组、字符指针

这里主要介绍字符串字面量。(字面量就是字符串的值,整数字面量就是整数的值,字面量相对于变量而言,就是变量的值)
定义字面量时会将其分配到字面量池中,字面量池中只有一个副本,通常认为字面量是不可变的
在这里插入图片描述
大部分编译器中把字符串字面量当做常量
在这里插入图片描述
所以应该在char *p 前面加上const修饰符,把他作为不可修改的常量

1.2字符串初始化

初始化char数组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

不能将字面量赋值给数组名
在这里插入图片描述

初始化char指针

在这里插入图片描述
赋值除了用strcpy,也可以这样
在这里插入图片描述
也可以用上面的形式,用字符串字面量(就是字符串的值)的地址直接赋值给字符指针
在这里插入图片描述但是这样就不能修改字符串(“abc”)了,所以应该用下面这种方式
在这里插入图片描述
字符字面量不能来初始化char指针
在这里插入图片描述

1.3字符常量

字符常量是由单引号引起来的字符序列,通常由一个字符组成,也可以包含多个字符,如转义字符。他们类型是int,4字节
VC++编译
在这里插入图片描述
VS2017 编译
在这里插入图片描述
所以还是建议用VC++6.0编译器

总结字符串在内存的布局

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值