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:

 

评分:0

我来说两句

Open Toolbar