1.数组的本质:

数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。

2.指针

指针也是一种变量,只不过它的内存单元中保存的是一个标识其他位置的地址。

3.字符串常量的本质是它的第一个字符的地址。(与数组类似,数组名也为其第一个元素的地址)。

char  *s ;s = "mgchen";   //此处为什么可以把一个字符串常量赋值给一个指针呢??原因就是,字符串常量在编译器中是把它看做一个地址。

4.char *  与 char  a[ ]

   char  *s;char  a[ ] ;

a代表字符串的首地址,而s 这个指针也保存字符串的地址(其实首地址)。

因此可以进行下面这种赋值:

s = a;//将a的值赋值给s,s为指针,虽然a为数组,但是在使用a时,编译器将其看做数组首元素的地址,所以可以将a的值赋值给指针s

//将a的值赋值给s,s为指针,虽然a为数组,但是在使用a时,编译器将其看做数组首元素的地址,所以可以将a的值赋值给指针s。

注意:sizeof()数组名,和sizeof()指针的结果是完全不一样的。

char a[10];
char *s 时;sizeof(a) 的结果为10  (10个元素*1个字节)
sizeof(s) 的结果为4.   (1个指针占4个字节)

但是当数组名作为形参传递给函数时,此时数组名退化为指针,那么sizeof()数组名和sizeof()指针的结果一样。

5.char** 和char *a[]

char *a[]  表示一个数组,数组中的元素才是char * (即元素是指向char类型的指针)。

char **s   为一个二级指针,s中保存的是一级指针char *的地址。可以这么来理解char *(*s),我定义一个指针s,但是我指针s保存的不是传统某个变量的地址,而是保存的是一个char * 指针的地址。(把char理解为a,char *理解为b,char**理解为c。那么b的值是a的地址,然而c的值又为b的地址)

【C/C++】char * ,char ** ,char a[ ] ,char *a[]相关推荐

  1. 【错误记录】Android NDK 编译报错 ( no known conversion from ‘unsigned char *‘ to ‘const char *‘ )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Visual Studio 2019 中编译 Android NDK , 构建方式参考 [Android 逆向]Android 进程注入工具开发 ...

  2. arduino char*转string_【201期】面试官:String长度有限制吗?是多少?还好我看过...

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...

  3. 【VS开发】CString 转为 char *方法大全

    [VS开发]CString 转为 char *方法大全 标签(空格分隔): [VS开发] 方法1: CString strTemp; char szTemp[128];strTemp = _T(&qu ...

  4. 【256期】MySQL 中 varchar 最大长度?char 和 varchar 有什么区别?

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... 以我多年经 ...

  5. 【解错笔记】struts2项目出错Illegal char 报错(已解决)

    Illegal char<:>atindex3:jar:file:\G:\Program Files\Apache Software Foundation\Tomcat9.0\webapp ...

  6. JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  7. 【C 语言】字符串操作 ( 使用 数组下标 操作字符串 | 使用 char * 指针 操作字符串 )

    文章目录 一.使用 数组下标 或 指针 操作字符串 1.使用 数组下标 操作字符串 2.使用 char * 指针 操作字符串 二.代码示例 一.使用 数组下标 或 指针 操作字符串 1.使用 数组下标 ...

  8. Qt中QString、int、char、QByteArray、std::string【八大转换】

    1.int 转 QString //int 转 QString int m=1; QString b; b=QString::number(m) 2.QString 转int QString a=&q ...

  9. 【c语言】使用char数组实现对中文汉字的处理

      前言:问题来源于我做哈夫曼编码和译码实训的时候,题目要求输入一段英文或中文.然后对其中的英文或中文进行检索,才能计算出相应的哈夫结点权值,构造哈夫曼树求哈夫曼编码. 对于中文的处理,头脑空白,只能 ...

最新文章

  1. apache+svn服务搭建
  2. 国家航天局:中国空间站预计到2022年前后建成
  3. 调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
  4. winhex使用经验
  5. 解决Myeclipse下Debug出现Source not found以及sql server中导入数据报错
  6. Feature Schema中Module和File节点属性含义的解释
  7. capistrano
  8. 窗口分析函数_14_生成相邻下一个元素
  9. thinkphp3.1迁移php7,ThinkPHP3.1迁移到PHP7的注意事项
  10. C++中类的6个默认成员函数
  11. adb: createprocessw failed: 系统找不到指定的路径_gcc编译过程、gcc命令参数、静态库和动态库搜索路径...
  12. lambda 使用_如何使用Lambda和API网关构建API
  13. mysql geocode_百度地图Geocoding API获取特定地区或地址的经纬度信息,然后在MySql数据库多表循环遍历更新...
  14. 罗振宇2021跨年演讲2:除了规模中国还有什么优势?
  15. angular学习之路(一)
  16. SqlServer复制表结构:从另一张表中获取某些字段和类型并添加到一张已经存在的表中...
  17. 【作业报告】作业5 四则运算 测试与封装 5.1
  18. 商城口碑高的蓝牙耳机好用吗?十大高人气蓝牙耳机测评推荐
  19. NLP之文本特征提取详解
  20. springboot教学工作量管理毕业设计-附源码221541

热门文章

  1. 优盘复制进来为空_为什么复制后文件夹u磁盘为空
  2. [jni] [android] 用C++开发安卓程序
  3. System.UnauthorizedAccessException: Access to the path 'D:/web/WebMicaps/TempImages/msc_cntr_0.txt'
  4. 2020农行研发笔试
  5. 信号强度诊断(系统架构)
  6. 图像处理中的滤波器之均值滤波,中值滤波,高斯滤波
  7. 007需求分析中的重要知识点(马斯洛需求层次理论+KANO优先级筛选模型+金字塔模型)
  8. python api接口10060_Python请求错误10060
  9. 基于MATLAB完成卷积运算,基于Matlab的离散卷积
  10. iOS textfield 键盘弹出后不能切换中文键盘