C++学习笔记2
上一篇 /
下一篇 2009-05-21 11:58:00
/ 个人分类:程序设计
今天要讨论关于指针的问题。
char globlestr1[]="abcde";
char globlestr2[]="abcde";
int mian()
{
char *p = new char[10];
strcpy(p,"abcde");
//指针的赋值方式;除了初始化时可以使用char* p="abcde"外,
//其他情况是不正确的。例如*p= "abcd"是不对的,不可能将一个
//字符串付给*p,因为*p是char类型
printf("%s %d\n",p,p);
//结果是:abcde 以及 p中存放的地址(即abcde位置)
printf("%c %d %c\n",*p,*p,*(p+1));
//结果是:a 97(a的整数值) 以及 b
char str[]="ABCDE";
printf("%s %d",str,str);
//结果是:ABCDE存放ABCDE的地址
//另外看一下这个列子:
char* p1="abcde";
char* p2="abcde";
printf("%d %d",p1,p2)
//p1,p2输出结果相同,是同一个地址;在这个列子里,在栈里为p1、
//p2分配两块不同的内存,单都指向同一个地址abcde;
printf("%d %d",globlestr1,p1,globlestr2);
//输出结果不同,虽然都是在数据段分配,但不是同一块地址;在这个
//列子里,在数据段里为globlestr1和globlestr2分配了两块不同
//的内存,但是存放的内容是相同的。
}
收藏
举报
TAG: