不要效仿这个程序
2012-08-03 22:40
176 查看
C语言中定义字符串时:
第二种方法中一定要加'\0'。
strlen函数、puts函数等都是寻找'\0',以'\0'为字符串的结束标志。
Now, hold on to your hat !
下面代码:
输出:
连同side_a中的字符也输出了,dont没有以'\0'结束,就不是字符串的结束,它会向后寻找'\0',直到找到为止,side_a和dont在内存单元中的存储情况如下图所示:
一目了然。
char str1[] = "EFG"; char str2[] = {'A', 'B', 'C', 'D', '\0'}; //末尾一定要加'\0'
第二种方法中一定要加'\0'。
strlen函数、puts函数等都是寻找'\0',以'\0'为字符串的结束标志。
Now, hold on to your hat !
下面代码:
#include <stdio.h> int main(void) { char side_a[] = "EFG"; char dont[] = {'A', 'B', 'C', 'D'}; //没有'\0' printf("side_a = %p\ndont = %p\n", side_a, dont); puts(dont); return 0; }
输出:
连同side_a中的字符也输出了,dont没有以'\0'结束,就不是字符串的结束,它会向后寻找'\0',直到找到为止,side_a和dont在内存单元中的存储情况如下图所示:
一目了然。
相关文章推荐
- 1.编写程序从键盘得到代表小时,分钟和秒的三个 整数数字,把这个时间的下一秒打印在屏幕上 hh:mm:ss
- 写程序要疯的时候看看这个
- 这个程序中为什么出错???为什么不能把nl,nr定义为全局变量,求大神指教
- flex控件拖动之这个程序太疯狂
- 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。
- 7-2 一帮一(10 分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名
- 解决 VMware 虚拟机中被提示 “请不要在虚拟机中运行此程序“
- 当你的程序运行异常时,不要使用debug工具,用你的大脑
- 大家帮我改正下这个程序吧!
- 写一个程序输入一个数,输出小于这个数的所有素数
- 因为公司的产品用asp开发, 前一段时间用asp写了一个生成静态页面并分页的程序,但缘于对.net的热爱,写了这个.net下的生成静态页面并分页的程序。 主要的原理就是替换模板里的特殊字符。
- 为了其他程序着想,请不要使用timeSetEvent
- 一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- o3d基本程序框架-(转 这个比我写的全面)
- 一个房地产开发商建议年轻人不要贷款买房,男生看了这个都释然了!
- 关于赋值操作符的重载: 这个程序为什么能在g++上编译通过?
- 这个程序是怎样运行的?
- 这个可以程序主要测试高级并发服务器程序怎样写会避免僵尸进程?
- 这个程序我想添加过能否查询是哪个老师上?