------- android培训、java培训、期待与您交流! ----------
1.字符串指针
char *变量名="字符串内容";
char ch=‘b‘;
char *p1=&ch;
char *str="C Language";//表示s指向字符串的首地址
str="ssssssss";//字符串存在常量区,可以修改s指向的内容
*(str+2)=‘X‘;//可以*(str+2)这样访问,但是不能修改。常量区保存的内容都是只读的
常见误区:
char *str2=NULL;
printf("%s",str2);//这样写是错误的,str2没有分配内存空间去存储变量
解决办法:
char *str2=NULL;
str2=malloc(100);
printf("%s",str2);
或者:
char ch3[100];
char *str2=ch3;
printf("%s",str2);
2.二维字符数组
char ch2[3][10]={"abc","def","kkk"};
3.char类型的指针数组和字符数组的区别
char *name[3]={"abc","def","kkk"};//一维指针数组,每个元素存储字符串首地址
#include <stdio.h> int main(int argc, const char * argv[]) { char *name[3]={"abc","def","kkk"}; for(int i=0;i<3;i++){ printf("%s\n",*(name+i));//name[i] } return 0; }
1)字符串指针char *ss="abc";指向可以改变ss="ssssss";
2)字符数组char s1[]="abc"; s1是一个常量,不能被赋值,s1="Helll";是错误的,
原文:http://www.cnblogs.com/fanglove/p/4936372.html