(转)字符型指针变量与字符数组的区别
(1)分配内存
设有定义字符型指针变量与字符数组的语句如下:
char *pc ,str[100];
则系统将为字符数组str分配100个字节的内存单元,用于存放100个字符。而系统只为指针变量pc分配4个存储单元,用于存放一个内存单元的地址。(2)初始化赋值含义
字符数组与字符指针变量的初始化赋值形式相同,但其含义不同。例如:
char str[ ] ="I am a student ! " ,s[200];
char *pc="You are a student ! " ;
对于字符数组,是将字符串放到为数组分配的存储空间去,而对于字符型指针变量,是先将字符串存放到内存,然后将存放字符串的内存起始地址送到指针变量pc中。(3)赋值方式
字符数组只能对其元素逐个赋值,而不能将字符串赋给字符数组名。对于字符指针变量,字符串地址可直接赋给字符指针变量。例如:
str="I love China! "; //字符数组名str不能直接赋值,该语句是错误的。
pc="I love China! "; //指针变量pc可以直接赋字符串地址,语句正确(4)输入方式
可以将字符串直接输入字符数组,而不能将字符串直接输入指针变量。但可将指针变量所指字符串直接输出。
例如: cin >> str //正确
cin >> pc //错误
cout<<pc //正确(5)值的改变
在程序执行期间,字符数组名表示的起始地址是不能改变的,而指针变量的值是可以改变的。例如:str=str+5; //错误
pc=str+5; //正确
小结 字符数组s[100] 指针变量pc(1)分配内存 分配100个单元 分配4个单元。
(2)赋值含义 字符串放到数组存储空间 先将字符串存放到内存
将存放串的首地址送到pc中。
(3)赋值方式 只能逐个元素赋值 串地址可赋给pc
(4)输入方式: 串直接输入字符数组 不能将字符串直接输入指针变量
(5)值的改变: 字符数组首地址不能改变 指针变量的值可以改变
由以上区别可以看出,在某些情况下,用指针变量处理字符串,要比用数组处理字符串方便原文链接:http://www.chang-hao.com/content.php?id=3
转载于:https://www.cnblogs.com/ForFreeDom/archive/2012/05/12/2496985.html
(转)字符型指针变量与字符数组的区别相关推荐
- 字符指针变量和字符数组的比较
用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈,主要有以下几点. (1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串 ...
- 第十节 字符串指针变量与字符数组的区别(十一)
用字符数组和字符指针变量都可实现字符串的存储和运算.但是两者是有区别的.在使用时应注意以下几个问题: 1) 字符串指针变量本身是一个变量,用于存放字符串的首地址.而字符串本身是存放在以该首地址为首的一 ...
- Python下数值型与字符型类别变量独热编码(One-hot Encoding)实现
1 OneHotEncoder 2 pd.get_dummies 在数据处理与分析领域,数值型与字符型类别变量的编码是不可或缺的预处理操作.本文基于Python下OneHotEncoder与pd. ...
- c语言中c为字符型便量,c='97'是否正确,计算机二级C语言 考点06 字符型常量变量...
计算机二级C语言 考点06 字符型常量变量 1.已定义c为字符型变量,则下列语句中正确的是 A)c='97'; B)c="97"; C)c=97; D)c="a" ...
- C语言指针变量与一维数组
数组元素之间的地址是相连的: 变量地址绝对不是相连的,如果找到规律那也只是一个偶然的,不是必然的: 1. 指针变量和一位数组 下面对指针数组进行分析,index(小标是从0开始),array数组是in ...
- 指针系统学习5-对使用字符指针变量和字符数组的讨论
虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈-- 主要概括起来有以下几点: 1. 字符数组由若干个元素组成,每个元素中 放一个字符,而字符指针变量中 ...
- 字符指针变量和字符数组的对比
使用字符数组和指针变量都能实现字符串的存储和运算,但它们两者之间是有区别的,不应混为一谈,主要有一下几点: (1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串中 ...
- 对使用字符指针变量和字符数组的讨论
区别:1.字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第一个字符的地址). 2.赋值方式.对字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值:char ...
- 字符型指针,数组,字符串赋值
一. C语言中,为什么字符串可以赋值给字符指针变量 char *p,a='5'; p=&a; //显然是正确的, p="abcd"; ...
最新文章
- java怎么打开编程输入界面,建议收藏
- Apache在windows下的安装配置
- Equinix 位于伦敦的LD8数据中心发生严重故障
- 淘宝应对双11的技术架构分析
- 小白 LeetCode 242 有效的字母异位词
- 三层神经网络实现手写数字的识别(基于tensorflow)
- android 自定义tabhost,安卓选项卡的实现方法(TabActivity),自定义TabHost容器
- 计算机网络蠕虫病毒及防范,蠕虫病毒检测与防范本科毕业论文.doc
- Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
- 形式化方法:Linear Arithmetic
- 原生纯js完美缓冲运动轮播图
- [CodeChef FEB15]Payton numbers(CUSTPRIM)解题报告
- Debian - Add the checking mail notification - mutt
- 快递查询单号查询追踪,一键查询全部物流
- vue3子组件给父组件传参
- python获取股指_用Python读取csv文件中的沪深300指数历史交易数据
- 国家标准官方下载查看地址
- 对植物大战僵尸的数据修改
- arthas的监控java性能
- 关于山大计科转专业的二三事