C字符数组赋值(转)

举例如下:

char a[10];
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如
 char a[10];
 a[10]="hello";
这样是错误的!

2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};

3、利用strcpy
char a[10];
strcpy(a, "hello");

易错情况:
1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!

还有:不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。


C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。直接尝试对字符串进行复制或比较操作会失败。例如,假定str1和str2有如下声明:

char str1[10], str2[10];

利用=运算符来把字符串复制到字符数组中是不可能的:

str1 = "abc";     /*** WRONG ***/

str2 = str1;       /*** WRONG ***/

C语言把这些语句解释为一个指针与另一个指针之间的(非法的)赋值运算。但是,使用=初始化字符数组是合法的:

char str1[10] = "abc";

这是因为在声明中,=不是赋值运算符。

试图使用关系运算符或判等运算符来比较字符串是合法的,但不会产生预期的结果:

if (str1==str2) ...    /*** WRONG ***/

这条语句把str1和str2作为指针来进行比较,而不是比较两个数组的内容。因为str1和str2有不同的地址,所以表达式str1 == str2的值一定为0。

 

 

转自:http://blog.csdn.net/jphaoren/article/details/5803583

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

别等了,全面「远程办公」凉了

大家好,我是Z哥。这是一篇迟到的文章。具体原因是,昨天定时发送的时候没注意已经过了0点了,习惯性的选了明天11点45,然后才发现实际变成10月9日的11:45了。赶紧取消重新发一下。好了,回到正文。不知道你是否…

PHP做闹钟APP,8款超好用的闹钟APP,专治各种赖床

这是什么神仙APP,我再也不怕冬天起不了床!有了它们,再也不怕懒床迟到了!好用到爆!可爱女生闹钟(超可爱的用户界面)这界面真是太可爱了,软萌妹子必备啊。推荐指数:★★★★怪物闹钟(玩游戏才能关…

easy html5 - Jquery mobile

今天看了下jquery mobile(http://jquerymobile.com/),看了后自己很兴奋;jquery 在web js框架上的风暴还在继续却也随着移动终端走向了mobile;那么jquery mobile到底包括些什么呢 首先jquery mobile是基于html5的,因为html5已经被默…

太漂亮了!66个高颜值的矿物晶体,吸引到你的目光了吗

全世界只有3.14 % 的人关注了爆炸吧知识1“中国皇帝”菱锰矿“中国皇帝”产自广西梧州,最大晶体为22厘米,是目前中国发现的菱锰矿中体积最大、单晶最大、质量最好的一件标本,在世界范围内亦属罕见。2车轮矿晶簇世界罕见的车轮矿晶簇。3祖母绿…

oracle中sum和count可以嵌套吗_【分享吧】Oracle查询转换

前言“查询转换”是Oracle解析SQL语句中重要的步骤。其原理是Oracle在解析时通过对原有SQL的等价改写,以达到较高执行效率的方式。上图展示了SQL的执行过程,当客户提交的语句经过解析后,在提交给优化器之前会进行一个查询转换的步骤。在这个步…

如何正确地部署防火墙?

防火墙在实际的部署应用过程当中,经常部署在网关的位置,也就是经常部署在网内和网外的一个"中间分隔点"上,而就是在这样一个部署的环境中,也还存在着多种方式,且存在着许多"陷阱",本文…

extjs 验证消息不显示

var linkIdthis.myform.findField("linkId");//获得该属性 var valuelinkId.getValue().trim();//得到值 if(value){ this.form.cbo.isValid(false);//验证失败,显示错误信息 this.form.cbo.markInvalid(请选择xxx!); …

IEnumerable.OrderBy().First() 在 .netcore 3.1 中是否做了优化?

咨询区 Matthew Watson:我记得 .net core 中有一个版本对下面的场景做了一个优化,代码如下:int smallest new[]{ 7, 2, 4, 6, 0, 1, 6, 9, 8 }.OrderBy(i > i).First();在很早之前它的时间复杂度是 O(N.Log(N)),现在已经优化成…

[转]软件测试演义——中高级系列(序)

[转]软件测试演义——中高级系列(序) 2015-06-11 转自:软件测试演义——中高级系列(序) 目前,软件测试团队主要集中在大型外资企业,国内软件测试水平还处在发展阶段,人们对测试理解…

男人是大猪蹄子的证据找到了!

1 老师!2 您倒也不必如此诚实3 哈哈哈哈哈哈这也太显眼了4 圆的面积其实可以这样算5 喵:进不去......好烦!!6 狗子:好好扔,砸我干嘛?你到底会不会玩?!7 男人是大猪蹄子的…

可视化的数据结构和算法

分享自: http://coolshell.cn/articles/4671.html/comment-page-1#comment-52802 还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看…

set-cookie 和 cookie 的区别_Go Web 编程如何确保Cookie数据的安全传输

什么是CookieCookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登…

去除箭头

cell.selectionStyle UITableViewCellSelectionStyleNone;//去除箭头转载于:https://www.cnblogs.com/chivas/archive/2012/04/22/2464915.html

使用C#快速生成顺序GUID

前言通常,我们采用数值ID(long)/GUID作为全局唯一标识符。但是,在多线程、高并发情况下,由应用程序生成数值ID容易产生重复,而由数据库生成又会造成性能瓶颈。而使用Guid.NewGuid()生成的GUID虽然不会重复,但是它是无序…

java符号%3e%3e是什么意思,终于找到了!有了它你就可以读懂字节码了!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼0x80 ior 将栈顶两int型数值作“按位或”并将结果压入栈顶0x81 lor 将栈顶两long型数值作“按位或”并将结果压入栈顶0x82 ixor 将栈顶两int型数值作“按位异或”并将结果压入栈顶0x83 lxor 将栈顶两long型数值作“按位异或”并将结…

带你见识世界的5部纪录片(免费领取)

全世界只有3.14 % 的人关注了爆炸吧知识纪录片一直都是增长见识又带给你力量的东西,你可能忙于学业、生活、工作而不能行万里路,但至少你还可以看纪录片,从一方屏幕看到整个世界。今天就为大家整理了5部高分纪录片,文末附领取方式…

Android简明开发教程二十一:访问Internet 绘制在线地图

在例子Android简明开发教程十七:Dialog 显示图像 中我们留了一个例子DrawMap()没有实现,这个例子显示在线地图,目前大部分地图服务器都是将地图以图片存储以提高响应速度。 一般大小为256X256个像素。具体可以参见离线地图下载方法解析 。 比…

Stefan Tilkov:跳过单体应用,从微服务开始

在过去的几个月中,许多人都宣称微服务架构应该总是从单体应用开始,其中包括Martin Fowler和Sam Newman,但Stefan Tilkov认为,那经常是错误的,构建一个模块边界清楚、结构良好的单体应用然后再迁移到微服务在大多数情况…

url采集工具_大数据关键技术浅谈之大数据采集

在前几篇文章中,企通查为大家介绍了大数据处理的基本流程。从大数据的一系列处理过程中(抽取、集成、分析、解释),我们可以发现这一整套流程中涵盖了数据存储、处理、应用等多方面的技术。大数据价值的完美体现需要多种技术的协同…

使用 WPF + Chrome 内核实现 在线客服系统 的复合客服端程序

本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程。本产品已经成熟稳定并投入商用。免费使用 & 私有化部署免费下载:https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269视频实拍:演示升讯威在线…