39,指针与字符串
2015-11-28 14:08
204 查看
一,指针存储字符串的方式
#include <stdio.h>/*
保存字符串的两种方式:
第一种:使用字符数组
第二种:使用指针
区别:
如果通过数组来保存字符串,那么字符串是一个变量str可以修改
如果通过指针来保存字符串,那么字符串是一个常量str2不能修改
数组保存的字符串存储在内存中的栈中,作用域结束后就会自动释放该变量
指针保存的字符串存储在常量区,只有程序退出才被释放;而且多个相同值的地址相同
结论:每一个存储字符串的数组,都会分别开辟一块存储空间,而多个相同值的指针只会开辟一块存储空间
*/
int main(int argc,constchar * argv[]) {
char str[] = "ljs";
char *p = "ljs";
printf("*p = %p\n",p);
char *p1 = "ljs";
printf("*p1 = %p\n",p1);
return 0;
}
//*p = 0x100000f7e
//*p1 = 0x100000f7e
//Program ended with exit code: 0
二,指针数组
#include <stdio.h>/*
指针数组:就是把所有字符串作为指针,保存为数组,便是指针数组
注意:其实,指针可以保存不同数据类型的值
*/
int main(int argc,
const char * argv[]) {
char *p[3] = {
"ljs",
"lms",
"lss"
};
for(int i=0;i<3;i++){
printf("*p[%i] = %s\n",i,p[i]);
}
}
//*p[0] = ljs
//*p[1] = lms
//*p[2] = lss
//Program ended with exit code: 0
相关文章推荐
- js,二进制转换保存到数据库及读取二进制图片
- API 开发实践
- Android UI性能优化实战 识别绘制中的性能问题
- C语言求最大公约数最小公倍数
- 笔记——struct之字节对齐
- 【ios基础】KVC大白话介绍篇
- listview 回弹效果1
- ic设计经验总结
- Android应用内存泄漏分类
- 前端使用JSTL表达式对数据反序列化
- android桌面文件夹美化
- 华硕开机自动进入bios(最终解决方案)
- [Servlet]加入监听器和过滤器的微博程序
- C#interface
- mkdosfs
- 编程基础知识之工程管理
- Java锁(一)之内存模型
- Educational Codeforces Round 1 D.Igor In the Museum(DFS)
- java实现文件单词频率统计 topN top K
- 2015年大二上-数据结构-串(1)- 顺序串算法库