字符串小结--菜鸟文章,老鸟多多指点!

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

字符串的3种表示

1. char str[]

2. char *str

3. 静态 "Hello,world!"

1.char str[]="Hello,world!"

str[0]='a' //可以的

2.char *str ;

str = "Hello,world!" //

str[0] = 'a'; //不可以

3.char *str = new char [13];

str = "Hello,world!"

str[0] = 'a'; //不可以

4.char *str = new char [13];

strcpy(str,"Hello,world!");

str[0] = 'a'; //可以

5.char *str = new char [13];

str = "Hello!";

strcpy(str,"Hello,world!");

str[0] = 'a'; //不可以

原因:

str[] 是分配了一组空间,其分别存放每个字符

*str用=表示指向这个静态字符串,不能修改

*str分配了空间,用strcpy,为每个空间都指向字符,修改指向某个字符里面存储的可以

str[],*str

str[i],某个元素的地址

&str[i],某个元素的地址

void * 对应 str,或者&str[i]

cout是可以输出没有分配空间的指针

strcpy,memcpy之类,必须先分配空间

memcpy(void *dest,void *src)

dest必须先分配空间

src 可以先不分配空间

char *str1,*str2,*str3,*str4;

str1 = new char [20];

str2 = new char [20];

str3 = "Hello,world!";

str4 = str3;

memcpy(str1,str3,13);

memcpy(str2,str4,13); //都是可以的

struct abc{int a;int b;};

abc *a1,*a2;

a1 = (abc *)malloc(sizeof(abc));//必须要这句

a1->a = 1;

a1->b = 1;

a2 = (abc *)malloc(sizeof(abc));

memcpy(a2,a1,sizeof(abc));

char *str...memcpy(str,...)

char str[]..memcpy(str,...)

char str[]..memcpy(&str[0]..)

不需要转换成memcpy((void *)str,..)

struct str ...memcpy(&str,..)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航