字符串(C语言)
2015-09-08 00:00
393 查看
1.如果要声明一个字符串“NoMasp”,下面这行代码错在哪里?
如果想声明的是字符串,就需要在初始化时在结尾加上一个’\0’。或者可以直接用下面这张方式:
2.以下这段代码会打印出什么?
在ptr执行自增操作之后就是指向字母’I’后的空格,而后在索引为6的地方改为’\0’因此字符串在这里就被截断了。所以最后打印出来的是”like”。
3.’A’一定比”A”更加节省空间吗?
不一定。字符常量是存储在int中的,也就是说’A’会占用2个或4个字节,虽然它’A’实际上只使用了一个字节来存储它的编码。而”A”则使用了2个字节,一个字节用来保存’A’,另一个字节用来保存’\0’。
c作为字符变量则占用1个字节。
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp
char name[] = {'N', 'o', 'M', 'a', 's', 'p'};
如果想声明的是字符串,就需要在初始化时在结尾加上一个’\0’。或者可以直接用下面这张方式:
char name[] = "NoMasp";
2.以下这段代码会打印出什么?
#include <stdio.h> int main() { char nomasp[]="I like C language."; char *ptr; ptr=nomasp; ++ptr; nomasp[6]='\0'; puts(++ptr); return 0; }
在ptr执行自增操作之后就是指向字母’I’后的空格,而后在索引为6的地方改为’\0’因此字符串在这里就被截断了。所以最后打印出来的是”like”。
3.’A’一定比”A”更加节省空间吗?
不一定。字符常量是存储在int中的,也就是说’A’会占用2个或4个字节,虽然它’A’实际上只使用了一个字节来存储它的编码。而”A”则使用了2个字节,一个字节用来保存’A’,另一个字节用来保存’\0’。
char c = 'A';
c作为字符变量则占用1个字节。
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp
相关文章推荐
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- htm页面中<a name>加name和id的冲突附解决方法
- C#虚方法的声明和使用实例教程
- 浅析Oracle中char和varchar2的区别
- Lua和C语言的交互详解
- MySQL中VARCHAR与CHAR格式数据的区别
- 浅谈html中id和name的区别实例代码
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法