基本知识:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。而指针是动态变换的,它指向的指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。

特别注意:当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。----重点

字符数组和字符串指针的主要区别:

1、字符指针可以指向一个字符串。
这里要注意字符指针与字符数组之间的区别。例如,有说明语句:

char string[ ]=“This is a string.”;
此时,string是字符数组,它存放了一个字符串。
字符指针str与字符数组string的区别是:str是一个变量,可以改变str使它指向不同的字符串,但不能改变str所指的字符串常量。string是一个数组,可以改变数组中保存的内容。

2、字符数组由若干个元素组成,每个元素中存放字符串的一个字符,而字符指针变量中存放的是字符串的首地址。

3、初始化方式不同。对字符数组初始化要用static存储类别,在编译时进行。而对字符指针变量初始化不必加static,在实际执行时进行。

4、赋值方式不同。对字符数组不能整体赋值,只能转化成份量,对单个元素进行。而字符指针变量赋值可整体进行。

5、在定义一个字符数组时,编译时即已分配内存单元,有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,但该指针变量具体指向哪个字符串,并不知道,即指针变量存放的地址不确定。例如:

6、字符指针变量的值可以改变,字符数组名是一个常量,不能改变。

字符串数组和字符串指针的区别相关推荐

  1. C语言—字符串与字符数组,字符串数组与字符串指针的区别

    字符串与字符数组 字符串一定是一个char的数组,但char的数组未必是字符串.--以字符'\0'结尾的char数组就是一个字符串,但如果char数组没有以'\0'结尾,那么就不是一个字符串,只是普通 ...

  2. C语言:字符串数组与字符串指针数组

    1,首先,不论是局部,静态还是全局数组都必须在定义的时候初始化,否则就得通过其他方式,eg 循环操作,字符串处理函数strcpy() 2,附以下代码: 主要完成将"I am from chi ...

  3. c语言字符数组给字符指针,C语言常见有关问题之字符串数组和字符指针数组有关问题...

    C语言常见问题之字符串数组和字符指针数组问题 通过如下的实例来讲解这个问题: #include int main(void) { char a[3][4] = {"123", &q ...

  4. char[]数组与char *指针的区别

    char[]数组与char *指针的区别 问题描述 虽然很久之前有看过关于char指针和char数组的区别,但是当时没有系统的整理,到现在频繁遇到,在string,char[], char *中迷失了 ...

  5. 神奇的判断数组名和指针的区别

    神奇的判断数组名和指针的区别 代码 代码 傻傻的区分不清楚数组名和指针的区别,下面的代码可以证明指针和数组名其实不是一个东西: // An highlighted block #include< ...

  6. 从编译器角度分析C语言中数组名和指针的区别

    从编译器角度分析C语言中数组名和指针的区别 数组名和指针是两个往往很容易让人们混淆的概念,很多人以为数组名就是一个指针,也有很多人知道数组名不同于指针但是仅知道数组名的值不能像指针一样改变. 例如你可 ...

  7. 如何在JavaScript中获取字符串数组的字符串?

    本文翻译自:How do you get a string to a character array in JavaScript? How do you get a string to a chara ...

  8. java字符串转字符串数组_Java字符串数组到字符串

    java字符串转字符串数组 Today we will look into how to convert Java String array to String. Sometimes we have ...

  9. java字符串转字符串数组_Java字符串数组

    java字符串转字符串数组 Java String array is used to hold fixed number of Strings. String array is very common ...

  10. golang 字符串拼接 字符串数组转字符串

    1.字符串拼接 一般对于少量的字符串拼接可以直接用+来连接,不过最好的方法还是Builder. 用buffer.Builder,官方建议用这个. package mainimport ("f ...

最新文章

  1. js回调函数和函数带参数的使用示例
  2. 从分治算法到 MapReduce
  3. 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端
  4. JSON的應用(Javascript Object Nonation)
  5. 现在股市里人人都在赚钱!!到底谁在亏钱?我讲一个故事来告诉大家谁亏钱了...
  6. matlab调和均值滤波_均值滤波和中值滤波的MATLAB实现
  7. linux flash 存储寿命,关于 Flash 存储,你应该知道的一些事情
  8. unity 屏幕虚拟键盘
  9. Symbian 清除栈 CleanupStack
  10. UDS——ISO14229
  11. raid5磁盘阵列原理以及实现
  12. 经典的mac阅读写作学习工具合集
  13. BZOJ 1778 Usaco2010 Hol Dotp 驱逐猪猡 期望DP+高斯消元
  14. 神经网络模型 基本概念 一文看懂
  15. 联通云服务器优势,多线云服务器有哪些优势?
  16. 分布式定时任务中间件
  17. 一文读懂法拉第未来赴美上市:合并PSAC,能否“卷土重来”?
  18. FastReport浏览器直接打印无须预览(2022终版)
  19. 好不好用户说了算,看OPPO R11如何赢得一致好评?
  20. [附源码]Python计算机毕业设计Django高校体育场馆管理系统

热门文章

  1. 基于STM32F767的SD卡EXCEL文件读写
  2. C语言---水仙花数
  3. 南昌大学计算机接收调剂的条件,南昌大学211高校,接受调剂人数超过600人,涉及26个学院...
  4. 参数控制类毕业论文文献有哪些?
  5. linux根目录下boot,linux根目录下5个主要的目录,及目录的功能
  6. unity常用组件功能介绍
  7. SAP LDQ本地数据队列
  8. opencv读入灰度图片却显示三通道
  9. OllyDBG 破解入门教程
  10. 三轴陀螺仪 偏置稳定性 光纤陀螺 光纤陀螺仪 光纤陀螺惯性导航系统 光纤陀螺惯性测量单元 六自由度IMU 单轴激光陀螺仪 双天线组合导航系统 双轴精确陀螺仪 导航级FOG怎么选择?