美文网首页
c语言用数组和指针表示字符串

c语言用数组和指针表示字符串

作者: KardelShaw | 来源:发表于2021-06-07 00:06 被阅读0次

可以用数组和指针两种方式表示字符串

//数组
char str[] = "my string";

//指针
char *p_str = "my string";

但是它们的内存管理机制不同。

相同点:它们都是使用内存中的字符串"my string"。

不同点:使用数组是先把"my string"的值拷贝一份再赋值到str里。使用指针是使用p_str指向内存中的某个已存在"my string"的地址。

这意味着数组使用str[2] = '_' 这样的语句只会影响str自己,因为它修改的是拷贝了的值,不会影响原有的"my string"

p_str[2] = '_'这样的操作就会影响内存中的"my string",从而影响所有使用这个字符串的代码。比如有另一个指针char *p_str0指向的是和p_str相同的"my string",那么用p_str修改了"my string"的值,就会无意中影响到p_str0以及其他用了这个内存存储的"my string"的变量,这是我们不想发生的。 (现在有些编译器已经禁止指针进行这种修改个别字符的行为,即 p_str[2] = '_' ,但是改变整个指针的赋值是可以的,如 p_str = "another string"

下图展示了两者的主要区别:


图例

1)需要修改字符串,用数组形式。
2)不需要修改字符串,用指针形式,并且加上关键字const,防止自己不小心修改。

const char *p_str = "my string";   

相关文章

  • 指针与数组

    基础 方法一:用字符数组定义字符串,用指针访问。 方法二:用指针定义字符串,用数组下标访问。 C语言没有定义字符串...

  • c语言用数组和指针表示字符串

    可以用数组和指针两种方式表示字符串 但是它们的内存管理机制不同。 相同点:它们都是使用内存中的字符串"my str...

  • 再学C语言之指针要点

    C之字符数组 C之指针引用字符串 C语言之数组指针 数组指针:首先它是一个指针,它指向数组指针数组:首先它是一个数...

  • iOS开发系列文章[转]

    C语言 iOS开发系列--C语言之基础知识 iOS开发系列--C语言之数组和字符串 iOS开发系列--C语言之指针...

  • 11.1 字符串和指针

    关于指针输出字符串 将字符串看作指针 使用指针表示法创建字符串 数组和指针的区别、数组名heart 是常量,指针名...

  • 慕课网-Linux C语言指针与内存-学习笔记

    Linux C语言指针与内存 工具与原理 指针 数组 字符串 堆内存与栈内存 gdb内存调试工具。 C语言中指针的...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • redis源码2--字符串SDS

    Redis是用C语言实现的,但是并没有使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串...

  • python与c

    1、ctypes 变量类型 2、定义一个可变字符串变量,长度为 10 3、C 语言指针 4、使用 C 语言数组和结...

  • C语言 - 字符串和指针

    字符串和指针 用数组实现的字符串和用指针实现的字符串 根据上例: 用数组实现的字符串str str是char[4]...

网友评论

      本文标题:c语言用数组和指针表示字符串

      本文链接:https://www.haomeiwen.com/subject/zxcceltx.html