char * 和 char[]
来源:互联网 发布:淘宝卖家代销怎么发货 编辑:程序博客网 时间:2024/06/01 19:19
本文实例分析了C语言中char* 和 char []的区别。分享给大家供大家参考之用。具体分析如下:
一般来说,很多人会觉得这两个定义效果一样,其实差别很大。以下是个人的一些看法,有不正确的地方望指正。
本质上来说,char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:
当char *s = "hello";后,不能使用s[0]='a';语句进行赋值。这是将提示内存不能为"written"。
当用char s[]="hello";后,完全可以使用s[0]='a';进行赋值,这是常规的数组操作。
若定义:
1
2
char
s[] =
"hello"
;
char
*p = s;
也可以使用p[0] = 'a';因为这是p ==s,都是指向数组的指针。
下面看另外一种定义:
1
char
*s = (
char
*)
malloc
(n(www.jb51.net));
//其中n为要开辟空间的大小
这句话其实相当于:
1
char
s[n];
定义的也是一个指向数组的指针,便可进行数组的下标操作
例子
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int
main(
int
argc,
char
* argv[]) {
char
* buf1 =
"this is a test"
;
char
buf2[] =
"this is a test"
;
printf
(
"size of buf1: %d\n"
,
sizeof
(buf1));
printf
(
"size of buf2: %d\n"
,
sizeof
(buf2));
return
0;
}
结果是:
$ > ./main
size of buf1: 4
size of buf2: 15
0 0
- 关于char *和char [ ]
- char *和const char *
- char*和char[]
- unsigned char和char
- char *和char [] 区别
- unsigned char 和 char
- char *和char []区别
- 还是char* 和char[]
- char*和char[]
- char * 和 char[]
- char * 和 char[]
- C++:char* 和 char[]
- char和unsigned char
- char*和char[]区别
- const char * 、 char const * 和 char * const
- char*p 和 char p[]
- char* 和 char[]的区别:
- char * 和 char []的区别
- day——05 迭代器,生成器
- Redis need tcl 8.5 or newer
- [2016 indeed笔试题] Tables and Pieces
- 求一个圆的面积及判断一个点是否在圆内
- redis数据类型
- char * 和 char[]
- windows下的mysql主从复制
- Tomcat源码分析之ClassLoader部分的设计详细分析
- 继承中的访问顺序
- 两种加载数据库方式
- Android四大组件之Service初涉
- Miller-Rabin素数判定O((logn)^2)
- cocos2d opengl的一下知识总结一
- 《不要放弃》阿里巴巴创业纪录片,观后感想!