【C/C++】char * ,char ** ,char a[ ] ,char *a[]
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[]相关推荐
- 【错误记录】Android NDK 编译报错 ( no known conversion from ‘unsigned char *‘ to ‘const char *‘ )
文章目录 一.报错信息 二.解决方案 一.报错信息 在 Visual Studio 2019 中编译 Android NDK , 构建方式参考 [Android 逆向]Android 进程注入工具开发 ...
- arduino char*转string_【201期】面试官:String长度有限制吗?是多少?还好我看过...
点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...
- 【VS开发】CString 转为 char *方法大全
[VS开发]CString 转为 char *方法大全 标签(空格分隔): [VS开发] 方法1: CString strTemp; char szTemp[128];strTemp = _T(&qu ...
- 【256期】MySQL 中 varchar 最大长度?char 和 varchar 有什么区别?
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每一天进步一点点,是成功的开始... 以我多年经 ...
- 【解错笔记】struts2项目出错Illegal char 报错(已解决)
Illegal char<:>atindex3:jar:file:\G:\Program Files\Apache Software Foundation\Tomcat9.0\webapp ...
- JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)
海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...
- 【C 语言】字符串操作 ( 使用 数组下标 操作字符串 | 使用 char * 指针 操作字符串 )
文章目录 一.使用 数组下标 或 指针 操作字符串 1.使用 数组下标 操作字符串 2.使用 char * 指针 操作字符串 二.代码示例 一.使用 数组下标 或 指针 操作字符串 1.使用 数组下标 ...
- 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 ...
- 【c语言】使用char数组实现对中文汉字的处理
前言:问题来源于我做哈夫曼编码和译码实训的时候,题目要求输入一段英文或中文.然后对其中的英文或中文进行检索,才能计算出相应的哈夫结点权值,构造哈夫曼树求哈夫曼编码. 对于中文的处理,头脑空白,只能 ...
最新文章
- apache+svn服务搭建
- 国家航天局:中国空间站预计到2022年前后建成
- 调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
- winhex使用经验
- 解决Myeclipse下Debug出现Source not found以及sql server中导入数据报错
- Feature Schema中Module和File节点属性含义的解释
- capistrano
- 窗口分析函数_14_生成相邻下一个元素
- thinkphp3.1迁移php7,ThinkPHP3.1迁移到PHP7的注意事项
- C++中类的6个默认成员函数
- adb: createprocessw failed: 系统找不到指定的路径_gcc编译过程、gcc命令参数、静态库和动态库搜索路径...
- lambda 使用_如何使用Lambda和API网关构建API
- mysql geocode_百度地图Geocoding API获取特定地区或地址的经纬度信息,然后在MySql数据库多表循环遍历更新...
- 罗振宇2021跨年演讲2:除了规模中国还有什么优势?
- angular学习之路(一)
- SqlServer复制表结构:从另一张表中获取某些字段和类型并添加到一张已经存在的表中...
- 【作业报告】作业5 四则运算 测试与封装 5.1
- 商城口碑高的蓝牙耳机好用吗?十大高人气蓝牙耳机测评推荐
- NLP之文本特征提取详解
- springboot教学工作量管理毕业设计-附源码221541
热门文章
- 优盘复制进来为空_为什么复制后文件夹u磁盘为空
- [jni] [android] 用C++开发安卓程序
- System.UnauthorizedAccessException: Access to the path 'D:/web/WebMicaps/TempImages/msc_cntr_0.txt'
- 2020农行研发笔试
- 信号强度诊断(系统架构)
- 图像处理中的滤波器之均值滤波,中值滤波,高斯滤波
- 007需求分析中的重要知识点(马斯洛需求层次理论+KANO优先级筛选模型+金字塔模型)
- python api接口10060_Python请求错误10060
- 基于MATLAB完成卷积运算,基于Matlab的离散卷积
- iOS textfield 键盘弹出后不能切换中文键盘