const と ポインタ の復習

int main() {

       char str1[] = "abc";
       char str2[] = "efg";
       char * p = str1;
       char ** pp = &p;
       char const * cp = str1;
       printf("&pp=%p pp=%p *pp =ps=%s \n",&pp,pp,*pp);
       printf("(*pp)[1]=pc=%c\n",(*pp)[1]);
       printf("**pp %c\n",**pp);
       cp = str2;
       printf("cp %p %s *p %c\n",cp,cp,*cp);
       //now *cp = e;
       // assignment of read-only location ‘* cp’
       //*cp = 'y';
       const char * const * ccpp = &p;
       printf("str1 = %p,&str1[0] = %p\n",str1,&str1[0]);
       printf("&p = %p p=%p \n",&p,p);
       printf("&ccpp= %p ccpp=%p *ccpp %p **ccpp = pc=%c\n",&ccpp,ccpp,*ccpp,**ccpp);
       printf("before **pp %c\n",**pp);
       **pp = 'y';
       printf("**pp %c\n",**pp);
       //read-only
       //**ccpp = 'y';
       printf("before *pp =%s\n",*pp );
       *pp = str2;
       printf("after *pp =%s\n",*pp );
       //read-only
       *ccpp = str2;

}


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-06-10 (金) 11:00:50 (2928d)