您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: