黑马程序员技术交流社区
标题: C语言学习笔记之二维字符串数组和char型指针数组的区别 [打印本页]
作者: chunhuayun 时间: 2015-9-27 21:11
标题: C语言学习笔记之二维字符串数组和char型指针数组的区别
1.二维字符串数组
A.用二维的字符数组可以存储多个字符串,第一维存得时每个字符串的首地址,每个字符串的长度不能超过第二维长度
例如:
- char arr[3][5] = {"abc","2134","abcd"};
- for (int i = 0; i < 3; i++) {
- printf("%s ",arr[i]);
-
- }
复制代码
打印结果:
abc 2134 abcd
2.char类型的指针数组
定义了一个指针数组name,并对name做了初始化赋值,其每个元素都指向一个字符串常量
例如:
- char *p[] = {"I am Amos",
- "I can fly",
- "I want to be super man",
- "I do not want to waste my time"
- };//这其中的值都是常量,是不能改的。但是长度是没有限制的。
-
- for (int i = 0; i < 3; i++) {
- printf("%s\n", *(p+i));
- }
复制代码
打印结果:
I am Amos
I can fly
I want tobe super man
2.字符指针变量与字符数组的区别
例如:
- char *p = "I am amos";//p是一个字符串指针变量
- p = = "I am not amos";//可以改变指针的指向
- char str[] = "I can fly";
- str = "I am a boy";//报错,因为数组名是一个常量,不可改变
复制代码
作者: 睡觉就有梦想 时间: 2015-9-27 22:51
看看 感谢分享
作者: i_iOS 时间: 2015-9-28 21:56
写的挺好的,代码也是分次插入的,挺认真的楼主
作者: chunhuayun 时间: 2015-9-28 22:11
嘿嘿,我不想发水帖呀。省的浪费别人时间呀,要不然你一打开,哇塞,好大一滩水{:2_34:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |