• nullah
  • (大山.mumu)
  • 等 级:
  • 结帖率:82.61%
楼主发表于:2008-11-14 09:48:35
在遍历字符串的时候

C/C++ code
char *a = "abcde";
while(*a != '/0')
{
}
while(a != "/0")//这样要出界 为什么
{
}
//'/0'表示一个字符
//那"/0"呢 表示NULL 还是?
 
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP

回复次数: 15

  • wuyu637
  • (乱世藏大米(继续收藏中))
  • 等 级:
#1楼 得分:0回复于:2008-11-14 09:50:17
一个是字符串,一个是字符。

“”表示的是一个字符串,
‘’表示的是一个字符

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐: 牛逼程序与君共赏

  • lbh2001
  • (C Fans)
  • 等 级:
#2楼 得分:5回复于:2008-11-14 09:51:35
"/0"表示一个地址,该地址处的内容为'/0' '/0'
'/0'表示一个NULL字符
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐: 谈谈C++的缺陷:一辆公共汽车是一辆汽车,一堆公共汽车却不是一堆汽车

  • hai040
  • (hai)
  • 等 级:
#3楼 得分:0回复于:2008-11-14 09:54:14
类型不同,size不同printf(sizeof('a')/sizeof("a"))
NULL是0指针,#define NULL ((void*)0)
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐: 对于VTune性能分析 以及Thread Profiler的疑问?

  • nullah
  • (大山.mumu)
  • 等 级:
#4楼 得分:0回复于:2008-11-14 09:54:55
引用 1 楼 wuyu637 的回复:
一个是字符串,一个是字符。

“”表示的是一个字符串,
‘’表示的是一个字符

如果"/0"是字符串那如何解释下面的结果

C/C++ code
            
char *a = "/0"; cout << strlen(a) << endl; while(*a != '/0') { cout << *a << endl; a++; } //output: 0 //按任意键接续....

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐: 面试三道题,想听听大家的意见和讨论

  • ghostwcy
  • (幽灵)
  • 等 级:
#5楼 得分:5回复于:2008-11-14 09:55:50
'/0'表示一个字符
"/0"表示的是一个无名字符指针,指向的内容为NULL
两个字符指针比较时,比较指针指向的地址
无名字符指针指向的地址肯定不会是指针a指向的字符串的最好一个字节(NULL)
所以肯定会越界.
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐: 如何判断一个数是4的整数次幂

  • lbh2001
  • (C Fans)
  • 等 级:
#6楼 得分:0回复于:2008-11-14 09:57:57
strlen(a) 为 0
循环根本不会执行
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • lostbyte2006
  • (流浪...思考)
  • 等 级:
#7楼 得分:0回复于:2008-11-14 09:59:22
空串也是字符串。

我认为:第一个strlen函数的结果为0,所以输出0.而while循环的初始条件就不成立,跳过。
故while内部的语句没有执行。
请lz自己验证一下吧。

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • nullah
  • (大山.mumu)
  • 等 级:
#8楼 得分:0回复于:2008-11-14 10:00:38
引用 6 楼 lbh2001 的回复:
strlen(a) 为 0
循环根本不会执行

那while循环遍历呢?

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • nullah
  • (大山.mumu)
  • 等 级:
#9楼 得分:0回复于:2008-11-14 10:02:39
引用 7 楼 lostbyte2006 的回复:
空串也是字符串。

我认为:第一个strlen函数的结果为0,所以输出0.而while循环的初始条件就不成立,跳过。
故while内部的语句没有执行。
请lz自己验证一下吧。

那你的意思是"/0"长度应该是2
而当while判断时 首字符是'/0'导致 条件不成立

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • lbh2001
  • (C Fans)
  • 等 级:
#10楼 得分:0回复于:2008-11-14 10:09:31
引用 9 楼 nullah 的回复:
引用 7 楼 lostbyte2006 的回复:
空串也是字符串。

我认为:第一个strlen函数的结果为0,所以输出0.而while循环的初始条件就不成立,跳过。
故while内部的语句没有执行。
请lz自己验证一下吧。

那你的意思是"/0"长度应该是2
而当while判断时 首字符是'/0'导致 条件不成立

C语言字符串以'/0'为结束符
所以"/0"长度应该是0
确实是while判断时 首字符是'/0'导致 条件不成立
基本概念,lz应多看书,呵呵

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • nullah
  • (大山.mumu)
  • 等 级:
#11楼 得分:0回复于:2008-11-14 10:15:17
引用 10 楼 lbh2001 的回复:
引用 9 楼 nullah 的回复:
引用 7 楼 lostbyte2006 的回复:
空串也是字符串。

我认为:第一个strlen函数的结果为0,所以输出0.而while循环的初始条件就不成立,跳过。
故while内部的语句没有执行。
请lz自己验证一下吧。

那你的意思是"/0"长度应该是2
而当while判断时 首字符是'/0'导致 条件不成立

C语言字符串以'/0'为结束符
所以"/0"长度应该是0
确实是while判断时 首字符是'/0'导致 条件不成立
基…

定义一个字符串,C语言会自动在末尾加上个'/0'
而对于"/0" c语言会判断已经有'/0' 就不会在末尾再添加'/0'
这样说 OK?

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • rock_HX
  • (飞陨)
  • 等 级:
#12楼 得分:0回复于:2008-11-14 10:22:25
引用 2 楼 lbh2001 的回复:
"/0"表示一个地址,该地址处的内容为'/0' '/0'
'/0'表示一个NULL字符

很多标准答案了

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • hjzwl1018
  • (LinuxCFans)
  • 等 级:
#13楼 得分:0回复于:2008-11-14 10:23:53
引用 5 楼 ghostwcy 的回复:
'/0'表示一个字符
"/0"表示的是一个无名字符指针,指向的内容为NULL
两个字符指针比较时,比较指针指向的地址
无名字符指针指向的地址肯定不会是指针a指向的字符串的最好一个字节(NULL)
所以肯定会越界.

up...

 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • cyj626
  • (人在江湖,江湖却没有我的传说-)
  • 等 级:
#14楼 得分:0回复于:2008-11-14 10:26:19
up
 
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • aaajj
  • (忆江南)
  • 等 级:
#15楼 得分:0回复于:2008-11-14 10:47:24
while(a != "/0")//这样要出界 为什么// strcmp(){

}
//'/0'表示一个字符
//那"/0"呢 表示NULL 还是?

 

总结: C风格字符串长度为0,一种是字符串指针为0,另一种是指针已设置,但是指针数组只包含一个空字符。

"/0" 就是一个空字符串,包含'/0'.

空字符串在进行内部字符遍历时与'/0'比较,所以上面的程序在*p!="/0"就已经犯错.

在C风格的程序中要比较一个字符串是否为空,必须比较     (p||*p) 为空. (!p &&!(*p))不为空.

'/0'和/0的区别相关推荐

  1. 127.0.0.1和0.0.0.0和localhost的区别

    127.0.0.1和0.0.0.0和localhost的区别 127.0.0.1 172.0.0.1是本地还回地址,专供自己访问自己,速度快(不用经过整个协议栈),永远都不能出现在主机外部的网络中,所 ...

  2. 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别

    一.前言 博主在安装web3.js的时候,偶然间安装了不同版本的web3.js,API操作也不相同,虽然都能达到目标,但是到底区别在哪呢?网上查找半天并没有人专门总结一下这块,所以今天斗胆总结一下,也 ...

  3. a[0]和a 的区别?

    &a[0]和&a 的区别? 1)a[0]是一个元素,a 是整个数组. 2),虽然&a[0]和&a的值一样,但其意义不一样.前者是数组首元素的首地址,而后者是数组的首地址 ...

  4. android 5.0 ios 8,Android 5.0和iOS8.1哪个好?安卓5.0与iOS8.1区别对比

    Android和iOS显然是目前最受欢迎的移动平台,也是最大的两个竞争者.在今年,谷歌和苹果都对各自的系统进行了更新,其中iOS8.1已经正式推送,相信各位苹果用户已经正在使用:而Android 5. ...

  5. http介绍(3)http1.0 和http1.1 区别

    翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别. 1. Persistent Connection持久连接      在HTTP1.0中,每对Request/R ...

  6. 浅谈JQuery中$('.classname').get(0); $('.classname').eq(0); $('.classname')[0]三者的区别

    举例浅谈JQuery中$('.classname').get(0); $('.classname').eq(0); $('.classname')[0]三者的区别 demo Dom结构: <di ...

  7. 计算机的USB是什么,usb2.0和3.0的区别,教您电脑usb2.0和3.0的有什么区别

    随着电脑的不断普及,现在的人们越来越离不开电脑.同时随着电脑的普及,高速USB3.0时代也随之到来,不过很多用户对USB2.0和USB3.0不知道如何区别,有用户不禁问电脑usb2.0和3.0的有什么 ...

  8. ‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了'\0' ,'0', "0" 之间的区别 ...

  9. c语言中\0’ ,‘0’, “0” ,0的区别

     看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了'\0' ,'0', "0" 之间的区 ...

  10. 关于‘\0’,‘0’,“0”,0的区别

    '\0'和'0'的异同点:有一个共同点就是它们都是字符:在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节. ASCLL表上的第一个ASCII码,对是0,对应的字符是(Null), ...

最新文章

  1. 安装ATi显卡驱动后增加的鼠标右键菜单的清理
  2. 常考数据结构与算法:反转链表
  3. Javascript 思维导图 绘制基础内容(值得一看)
  4. linux命令:man,tree.find,grep,ln,tar,管道,重定向
  5. 2019年湘潭大学程序设计竞赛(重现赛)补题:F.Black White(尺取法)
  6. ctrl导致开机弹出计算机,Win7系统开机黑屏提示Press Ctrl+Alt+Del to restart如何解决...
  7. 难学的十大编程语言,C++位居第二,它才是第一名!
  8. Python 基础 - Day 2 Learning Note - 序列之字符串 String
  9. 关于jquery获取单选框value属性值为on的问题
  10. 窥探源码,让我更加优雅的使用Kafka生产者!
  11. mysql查看授权_mysql查看用户授权信息的具体方法
  12. verilog实现格雷码(Gray Code)与二进制编码转换
  13. gt1151触摸驱动调试
  14. “潜力工作者”会不会成为明年24届秋招统计参数中的受害者?
  15. Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库
  16. Dynamical Isometry and a Mean Field Theory of CNNs
  17. python有道字典_【Python】Python利用有道翻译开发API应用示例
  18. 如何画圆角矩形 c代码
  19. 判断一天是一年中的第几天
  20. UTL_FILE 包使用介绍

热门文章

  1. oracle 正序 倒序 排列
  2. 工业软件开发-odoo
  3. 什么样的打码网站算正规的打码网站
  4. 【听】《斯坦福极简经济学》,国家调控
  5. VIPKID前端面试题
  6. 寒假每日一题 2 : 干草堆 java
  7. 【shell】scp 同时向多个主机拷贝数据
  8. windows 环境MySQL 安装启动 、重新安装
  9. 如何正确使用螳螂教育CRM系统?
  10. abortonerror_DCB结构