C¸À¸ì´Ø·¸·Ç¼¨ÈÄ

²áµî¥í¥°

No£¸£¸£²¡¡const¤Î½ñ¤­´¹¤¨¡¡BCC5.5¤Î¥Ð¥°¡©

[Ìá¤ë]¡¡[¥Û¡¼¥à¥Ú¡¼¥¸]
No.11408

const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤Ò¤è¤³(2003/12/22 19:51:33)


¤³¤ó¤Ð¤ó¤Ï¡¢¤Ò¤è¤³¤Ç¤¹¡£
½é¿´¼Ô¤Ç¤¹¡£
¤Þ¤¿¡¢¥Ð¥«¤Ê¼ÁÌä¤À¤È»×¤¤¤Þ¤¹¤¬¡¢¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£

#include <stdio.h>

void ary_cpy(int a[],const int b[],int no) //a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë
{
    while(no-->0)
        *a++ = *b++;
}

int main(void)
{
    int y[5]={1,2,3,4,10},x[5];
    int i;
    int a_size=sizeof(y)/sizeof(y[0]);

    ary_cpy(x,y,a_size);

    for(i=0;i<a_size;i++)
        printf("x[%d]= %d\n",i,x[i]);

    return 0;
}



¤³¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡Éconst¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡É¤È
¤Ê¤ë¤Î¤Ç¤¹¤¬¤É¤¦¤·¤Æ¤Ç¤·¤ç¤¦¤«¡©

void ary_cpy(int a[],const int b[],int no)
{
    int i;

    for(i=0;i<no;i++)
        a[i]=b[i];
}


¤ä¡¢
void ary_cpy(int a[],const int b[],int no)
{
    int i;

    for(i=0;i<no;i++)
        *(a+i)=*(b+i);
}


¤Ê¤É¤Ï¤Ç¤­¤ë¤Î¤Ç¤¹¤¬¡¢ºÇ½é¤Î¤È¤Ê¤Ë¤¬°ã¤¦¤Î¤«Ê¬¤«¤ê¤Þ¤»¤ó¡£
¥³¥ó¥Ñ¥¤¥é¤ÏBCC5.5¤Ç¤¹¡£
¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£


No.11410

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---YuO(2003/12/22 20:09:39)


>¤³¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡Éconst¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡É¤È
>¤Ê¤ë¤Î¤Ç¤¹¤¬¤É¤¦¤·¤Æ¤Ç¤·¤ç¤¦¤«¡©
>¥³¥ó¥Ñ¥¤¥é¤ÏBCC5.5¤Ç¤¹¡£

¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥°¤À¤È»×¤¤¤Þ¤¹¡£
¡ô°ÕÌ£²ò¼á¤Î½ê¤ËÌäÂ꤬¤¢¤ê¤½¤¦¡Ä¡Ä¡£

void ary_cpy(int * a,const int * b,int no) /*a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë*/

¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ì¤Ð¡¤¤Á¤ã¤ó¤È¥³¥ó¥Ñ¥¤¥ë¤òÄ̤ê¤Þ¤¹¡£


No.11413

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤ª¤Ç¤ó(2003/12/22 20:32:09)


>>¤³¤ì¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¡Éconst¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѹ¹¤Ç¤­¤Ê¤¤¡É¤È
>>¤Ê¤ë¤Î¤Ç¤¹¤¬¤É¤¦¤·¤Æ¤Ç¤·¤ç¤¦¤«¡©
>>¥³¥ó¥Ñ¥¤¥é¤ÏBCC5.5¤Ç¤¹¡£
>
>¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥°¤À¤È»×¤¤¤Þ¤¹¡£
>¡ô°ÕÌ£²ò¼á¤Î½ê¤ËÌäÂ꤬¤¢¤ê¤½¤¦¡Ä¡Ä¡£
>
>
void ary_cpy(int * a,const int * b,int no) /*a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë*/

>¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ì¤Ð¡¤¤Á¤ã¤ó¤È¥³¥ó¥Ñ¥¤¥ë¤òÄ̤ê¤Þ¤¹¡£


ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£
¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£
¡¦¡¦¡¦¥Ý¥¤¥ó¥¿¤ÈÇÛÎó¤Ï¤Þ¤Ã¤¿¤¯°ã¤¤¤Þ¤¹¤è (^.^)

No.11415

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---NykR(2003/12/22 20:46:58)


>ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£
>¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£
>¡¦¡¦¡¦¥Ý¥¤¥ó¥¿¤ÈÇÛÎó¤Ï¤Þ¤Ã¤¿¤¯°ã¤¤¤Þ¤¹¤è (^.^)

¤½¤¦¤Ç¤¹¤Í¡£
¡ô¥Ý¥¤¥ó¥¿¤¬ÊÑ¿ô¤«¤É¤¦¤«¤Ï¤È¤â¤«¤¯

void ary_cpy(int a[],const int b[],int no) //a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë

¤È½ñ¤³¤¦¤¬

void ary_cpy(int * a,const int * b,int no) /*a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë*/

¤È½ñ¤³¤¦¤¬¡¢a¤âb¤â¥Ý¥¤¥ó¥¿¤Ç¤¢¤Ã¤ÆÇÛÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
Ʊ¤¸¤³¤È¤ò½ñ¤¤¤Æ¤¤¤ë¤Î¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë¤òÄ̤俤êÄ̤é¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤À¤«¤é¡¢
¤ª¤«¤·¤¤¤Î¤Ï¥×¥í¥°¥é¥à¤Ç¤Ï¤Ê¤¯¡¢¥³¥ó¥Ñ¥¤¥é¤À¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£

No.11416

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤¿¤«(2003/12/22 21:01:08)


Borland-C++5.6.4¤Ç¤Ï¤É¤ì¤â¥¨¥é¡¼Ìµ¤·¤ÇÄ̤ê¤Þ¤¹¡£

BCC5.5¤Ï½ÅÂç¤Ê¥Ð¥°¤¬¤¢¤Ã¤¿¤½¤¦¤Ê¤Î¤Ç5.5.1¤Ç»î¤·¤Æ¤ß¤é¤ì¤Æ¤Ï¤¤¤«¤¬
¤Ç¤·¤ç¤¦¤«¡£


No.11422

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---YuO(2003/12/22 23:16:52)


>Borland-C++5.6.4¤Ç¤Ï¤É¤ì¤â¥¨¥é¡¼Ìµ¤·¤ÇÄ̤ê¤Þ¤¹¡£
>BCC5.5¤Ï½ÅÂç¤Ê¥Ð¥°¤¬¤¢¤Ã¤¿¤½¤¦¤Ê¤Î¤Ç5.5.1¤Ç»î¤·¤Æ¤ß¤é¤ì¤Æ¤Ï¤¤¤«¤¬
>¤Ç¤·¤ç¤¦¤«¡£

5.5.1¤Ç¤â¤À¤á¤Ç¤·¤¿¡£
¡ô¤È¤¤¤¦¤«¡¤»ä¤Î¼ê¸µ¤Ë¤Ï5.5.1¤·¤«¤Ê¤¤¡£

C++Builder X¤òÍî¤È¤½¤¦¤«¤Ê¤¡¡Ä¡Ä¡£
¡ô¤»¤Ã¤«¤¯¤ÎÆüËܸìÈÇ(5.5.1)¤Ê¤Î¤Ç¡¤¾è¤ê´¹¤¨¤òí´í°¤Ã¤Æ¤¤¤ë¡£


No.11417

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤ª¤Ç¤ó(2003/12/22 21:44:55)


>>ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£
>>¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£
>>¡¦¡¦¡¦¥Ý¥¤¥ó¥¿¤ÈÇÛÎó¤Ï¤Þ¤Ã¤¿¤¯°ã¤¤¤Þ¤¹¤è (^.^)
>
>¤½¤¦¤Ç¤¹¤Í¡£
>¡ô¥Ý¥¤¥ó¥¿¤¬ÊÑ¿ô¤«¤É¤¦¤«¤Ï¤È¤â¤«¤¯
>
> void ary_cpy(int a[],const int b[],int no) //a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë
>
>¤È½ñ¤³¤¦¤¬
>
> void ary_cpy(int * a,const int * b,int no) /*a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë*/
>
>¤È½ñ¤³¤¦¤¬¡¢a¤âb¤â¥Ý¥¤¥ó¥¿¤Ç¤¢¤Ã¤ÆÇÛÎó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
>Ʊ¤¸¤³¤È¤ò½ñ¤¤¤Æ¤¤¤ë¤Î¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë¤òÄ̤俤êÄ̤é¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤Î¤À¤«¤é¡¢
>¤ª¤«¤·¤¤¤Î¤Ï¥×¥í¥°¥é¥à¤Ç¤Ï¤Ê¤¯¡¢¥³¥ó¥Ñ¥¤¥é¤À¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£

Î㤨¤Ð¡¢
a[10];
b[10];
¤È¸À¤¦Àë¸À¤¬¤¢¤Ã¤Æa=b¤Ï½ÐÍè¤Þ¤»¤ó¤è¤Í¡©¡¦¡¦¡¦¤½¤ì¤¬¡ÖÊÑ¿ô¤Ç¤Ï¤Ê¤¤¡×¤È¸À¤¦º¬µò¤Ç¤¹¡£
ÊÑ¿ô¤Ç¤Ê¤¤¤Î¤À¤«¤é¥¤¥ó¥¯¥ê¥á¥ó¥È¡¿¥Ç¥¯¥ê¥á¥ó¥È¤ÏÅöÁ³½ÐÍè¤Þ¤»¤ó¡£
¤Þ¤·¤Æ¡¢¼õ¤±¼è¤Ã¤¿´Ø¿ô¤ÎÊý¤Ç¡ÖÇÛÎó¤À¡×¤ÆÀë¸À¤·¤Æ¤¤¤ë
¡á¡á¡Ö¥Ý¥¤¥ó¥¿¤È¤·¤Æ¤Ï»È¤ï¤Ê¤¤¡×¤È¤¤¤Ã¤Æ¤ë¤ï¤±¤Ç¤¹¤«¤é¡¦¡¦¡¦

a[]¤Î¤È¤­¤Î'a'¤ÏÇÛÎó¤Î̾Á°¤Ç¤¢¤Ã¤Æ¡¢¥Ý¥¤¥ó¥¿¤Î̾Á°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
̾Á°¤òÊѤ¨¤ë»ö¤Ï½ÐÍè¤Ê¤¤¤Ç¤¹¤Í¡©
#a[]¤òa++¤È¤ä¤ë¤Èb¤Ë¤Ê¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©

¤½¤ÎÊդϡ¢C-FAQ¤Î6¾Ï¤¢¤¿¤ê¤«¤é»Ï¤Þ¤ëµÄÏÀ¤ò»²¾È¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html¡¡¢«ÆüËܸìÌõ

No.11424

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---YuO(2003/12/22 23:36:24)


¤»¤Ã¤«¤¯¤Ê¤Î¤Ç¡Ä¡Ä¡£


>Î㤨¤Ð¡¢
>a[10];
>b[10];
>¤È¸À¤¦Àë¸À¤¬¤¢¤Ã¤Æa=b¤Ï½ÐÍè¤Þ¤»¤ó¤è¤Í¡©¡¦¡¦¡¦¤½¤ì¤¬¡ÖÊÑ¿ô¤Ç¤Ï¤Ê¤¤¡×¤È¸À¤¦º¬µò¤Ç¤¹¡£

º¬µò¤Ë¤Ê¤ê¤Þ¤»¤ó¡£
a = b;
¤È¤·¤¿¤È¤­¤Ë¡¤a¤ËÍ׵ᤵ¤ì¤ë¤Î¤Ï¡¤Êѹ¹²Äǽ¤Êº¸ÊÕÃͤǤ¢¤ë¤³¤È¤Ç¤¹¡£

Î㤨¤Ð¡¤¥Ý¥¤¥ó¥¿¤¬¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤·¼¨¤·¤Æ¤¤¤ë¤È¤­¡¤
ñ¹à*±é»»»Ò¤Ïº¸ÊÕÃͤòºî¤ê½Ð¤·¤Þ¤¹¤«¤é¡¤p¤¬int *·¿¤ÇÀµ¤·¤¯int·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤·¤Æ¤¤¤ë¤È¤­¡¤
*p = 10;
¤È¤¤¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¡ô*p¤ÏÊѹ¹²Äǽ¤Êº¸ÊÕÃͤˤʤ뤫¤é¡£

µÕ¤Ë¡¤
extern const int a;
int b;
¤È¤¢¤Ã¤¿»þ¤Ë¡¤
a = b;
¤Ïa¤¬º¸ÊÕÃͤǤ¢¤Ã¤Æ¤âÊѹ¹²Äǽ¤Ç¤Ê¤¤¤Î¤ÇÀ©Ìó°ãÈ¿¤Ç¤¹¡£


¤Á¤Ê¤ß¤Ë¡¤º¸ÊÕÃͤÈÊѹ¹²Äǽ¤Êº¸ÊÕÃͤˤĤ¤¤ÆJIS X 3010-1993¤Îµ¬Äê¤ò¤Þ¤È¤á¤ë¤È¡¤
º¸ÊÕÃÍ
¥ª¥Ö¥¸¥§¥¯¥È¤ò»Ø¤·¼¨¤¹¼°¡£
Êѹ¹²Äǽ¤Êº¸ÊÕÃÍ
°Ê²¼¤òËþ¤¿¤¹º¸ÊÕÃÍ¡£
  • ÇÛÎ󷿤ò¤â¤¿¤Ê¤¤
  • ÉÔ´°Á´·¿¤ò»ý¤¿¤Ê¤¤
  • const½¤¾þ·¿¤ò¤â¤¿¤Ê¤¤
  • ¹½Â¤ÂÎËô¤Ï¶¦ÍÑÂΤξì¹ç¡¤const½¤¾þ·¿¤Î¥á¥ó¥Ð¤ò¤â¤¿¤Ê¤¤(ºÆµ¢Å¬ÍÑ)

¤È¤Ê¤ê¤Þ¤¹¡£


>ÊÑ¿ô¤Ç¤Ê¤¤¤Î¤À¤«¤é¥¤¥ó¥¯¥ê¥á¥ó¥È¡¿¥Ç¥¯¥ê¥á¥ó¥È¤ÏÅöÁ³½ÐÍè¤Þ¤»¤ó¡£

Áýʬ¡¦¸ºÊ¬±é»»»Ò¤Ï¡¤¥¹¥«¥é·¿¤ÎÊѹ¹²Äǽ¤Êº¸ÊÕÃͤò¥ª¥Ú¥é¥ó¥É¤È¤·¤ÆÍ׵ᤷ¤Þ¤¹¡£
¤½¤·¤Æ¡¤Áýʬ¡¦¸ºÊ¬±é»»»Ò¤Ë´Ø¤·¤ÆC++¤Ç¤¤¤¦Array-to-pointer conversion¤¬Å¬ÍѤµ¤ì¤Þ¤»¤ó¤«¤é¡¤
ÇÛÎó¤ËÂФ·¤ÆÅ¬ÍѤ¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£


>¤Þ¤·¤Æ¡¢¼õ¤±¼è¤Ã¤¿´Ø¿ô¤ÎÊý¤Ç¡ÖÇÛÎó¤À¡×¤ÆÀë¸À¤·¤Æ¤¤¤ë
>¡á¡á¡Ö¥Ý¥¤¥ó¥¿¤È¤·¤Æ¤Ï»È¤ï¤Ê¤¤¡×¤È¤¤¤Ã¤Æ¤ë¤ï¤±¤Ç¤¹¤«¤é¡¦¡¦¡¦

¤³¤ì¤Ë´Ø¤·¤Æ¤Ï¡¤No. 11420¤Ë½ñ¤¤¤¿¤È¤ª¤ê¡£
´Ø¿ô²¾°ú¿ôÃæ¤Ç¤ÎÇÛÎ󷿤ϥݥ¤¥ó¥¿·¿¤ËÆÉ¤ßÂØ¤¨¤ë¤Î¤¬¸À¸ìµ¬Â§¤Ç¤¹¡£


>¤½¤ÎÊդϡ¢C-FAQ¤Î6¾Ï¤¢¤¿¤ê¤«¤é»Ï¤Þ¤ëµÄÏÀ¤ò»²¾È¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
>http://www.catnet.ne.jp/kouno/c_faq/c_faq.html¡¡¢«ÆüËܸìÌõ

http://www.catnet.ne.jp/kouno/c_faq/c6.html#3
http://www.catnet.ne.jp/kouno/c_faq/c6.html#4
¤ò¤Á¤ã¤ó¤ÈÆÉ¤ß¤Þ¤·¤¿¤«¡©

No.11418

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤«¤º¤Þ(2003/12/22 21:53:31)


> ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£

Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

#include <stdio.h>
void f(void) { int a[3]; printf("a=%p\n", a); }
void g(void) { f(); }
int main(void) { f(); g(); return 0; }

ÇÛÎó¤Ï¡¢sizeof±é»»»Ò¤Èñ¹à&±é»»»Ò¤Î¥ª¥Ú¥é¥ó¥É¤È¤Ê¤ë¤È¤­°Ê³°¤Ï¡¢
¾ï¤Ë¡¢ÀèÆ¬Í×ÁǤؤΥݥ¤¥ó¥¿¤ÎÃͤËÊÑ´¹¤µ¤ì¤ë¤È¤¤¤¦µ¬Â§¤¬¤¢¤ê¤Þ¤¹¡£


> ¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£

K&R2 ¤Ë¤âºÇ½é¤Ï¤½¤¦½ñ¤¤¤Æ¤¢¤ê¡¢¤½¤¦»×¤¤¹þ¤ó¤Ç¤¤¤ë¿Í¤¬Â¿¤¤¤è¤¦¤Ç¤¹¤¬¡¢
¼ÂºÝ¤Ë¤Ï¡¢¡Ö¥Ý¥¤¥ó¥¿¤Ï·¿¤Ç¤¹¡£¡×¤Î¤Û¤¦¤¬Àµ¤·¤¤²ò¼á¤Ç¤¹¡£

¡Öint ¤ÏÊÑ¿ô¤Ç¤¹¡£¡×¤È¸À¤ï¤ì¤¿¤éÈ¿ÏÀ¤·¤¿¤¯¤Ê¤ê¤Þ¤»¤ó¤«¡£
int ¤Ï·¿¤Ç¤¹¤«¤é¡¢ÊÑ¿ô¤â¤¢¤ì¤Ð¡¢Äê¿ô¤â¤¢¤ë¡£¼°¤ÎÃͤǤ⤢¤ë¤ï¤±¤Ç¤¹¡£
int i; ¤Î¤È¤­¡¢ÊÑ¿ô i ¤Ï int¡£Äê¿ô 3 ¤Ï int¡£¼°(i + 3) ¤ÎÃͤâ int ¤Ç¤¹¡£

int *p = &i; ¤Î¤È¤­¡¢³Î¤«¤ËÊÑ¿ô p ¤Ï¥Ý¥¤¥ó¥¿¤Ç¤¹¤¬¡¢
&i ¤â¥Ý¥¤¥ó¥¿¤Ç¤¹¡£¤·¤«¤·¡¢&i ¤ÏÊÑ¿ô¤Ç¤Ï¤Ê¤¯¡¢¼°¤Ç¤¹¡£


No.11419

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤ª¤Ç¤ó(2003/12/22 21:57:58)


><pre>
> ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£

Äê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¼¡¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

#include <stdio.h>
void f(void) { int a[3]; printf("a=%p\n", a); }
void g(void) { f(); }
int main(void) { f(); g(); return 0; }

ÇÛÎó¤Ï¡¢sizeof±é»»»Ò¤Èñ¹à&±é»»»Ò¤Î¥ª¥Ú¥é¥ó¥É¤È¤Ê¤ë¤È¤­°Ê³°¤Ï¡¢
¾ï¤Ë¡¢ÀèÆ¬Í×ÁǤؤΥݥ¤¥ó¥¿¤ÎÃͤËÊÑ´¹¤µ¤ì¤ë¤È¤¤¤¦µ¬Â§¤¬¤¢¤ê¤Þ¤¹¡£


> ¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£

K&R2 ¤Ë¤âºÇ½é¤Ï¤½¤¦½ñ¤¤¤Æ¤¢¤ê¡¢¤½¤¦»×¤¤¹þ¤ó¤Ç¤¤¤ë¿Í¤¬Â¿¤¤¤è¤¦¤Ç¤¹¤¬¡¢
¼ÂºÝ¤Ë¤Ï¡¢¡Ö¥Ý¥¤¥ó¥¿¤Ï·¿¤Ç¤¹¡£¡×¤Î¤Û¤¦¤¬Àµ¤·¤¤²ò¼á¤Ç¤¹¡£

¡Öint ¤ÏÊÑ¿ô¤Ç¤¹¡£¡×¤È¸À¤ï¤ì¤¿¤éÈ¿ÏÀ¤·¤¿¤¯¤Ê¤ê¤Þ¤»¤ó¤«¡£
int ¤Ï·¿¤Ç¤¹¤«¤é¡¢ÊÑ¿ô¤â¤¢¤ì¤Ð¡¢Äê¿ô¤â¤¢¤ë¡£¼°¤ÎÃͤǤ⤢¤ë¤ï¤±¤Ç¤¹¡£
int i; ¤Î¤È¤­¡¢ÊÑ¿ô i ¤Ï int¡£Äê¿ô 3 ¤Ï int¡£¼°(i + 3) ¤ÎÃͤâ int ¤Ç¤¹¡£

int *p = &i; ¤Î¤È¤­¡¢³Î¤«¤ËÊÑ¿ô p ¤Ï¥Ý¥¤¥ó¥¿¤Ç¤¹¤¬¡¢
&i ¤â¥Ý¥¤¥ó¥¿¤Ç¤¹¡£¤·¤«¤·¡¢&i ¤ÏÊÑ¿ô¤Ç¤Ï¤Ê¤¯¡¢¼°¤Ç¤¹¡£
</pre>

¤´»ØÅ¦¤¤¤¿¤À¤¤¤¿¤³¤È¡¢Ç¼ÆÀ¤¤¤¿¤·¤Þ¤·¤¿¡£¤Þ¤¿¡¢
¡ÖÇÛÎó¤Ï¡¢sizeof±é»»»Ò¤Èñ¹à&±é»»»Ò¤Î¥ª¥Ú¥é¥ó¥É¤È¤Ê¤ë¤È¤­°Ê³°¤Ï¡¢
¾ï¤Ë¡¢ÀèÆ¬Í×ÁǤؤΥݥ¤¥ó¥¿¤ÎÃͤËÊÑ´¹¤µ¤ì¤ë¤È¤¤¤¦µ¬Â§¤¬¤¢¤ê¤Þ¤¹¡£¡×
¤È¸À¤¦»ö¤«¤éÊѹ¹¤Ç¤­¤Ê¤¤¡ÊÄê¿ô¤Î¤è¤¦¤Ë¿¶Éñ¤¦¡¦¡¦¡¦¤Ç¤·¤ç¤¦¤«¡©¡Ë
¡¦¡¦¡¦¤È¤¤¤¦¤³¤È¤Ç¤¹¤Í¡©¡¦¡¦¡¦´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤·¤¿¤é¤´»ØÅ¦¤¯¤À¤µ¤¤¡£

No.11426

¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
Åê¹Æ¼Ô---¤Ò¤è¤³(2003/12/22 23:51:32)


YuO¤µ¤ó¡¢¤ª¤Ç¤ó¤µ¤ó¡¢NykR¤µ¤ó¡¢¤¿¤«¤µ¤ó¡¢¤«¤º¤Þ¤µ¤ó¡¢
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

³§¤µ¤ó¤Î¶µ¤¨¤Æ¤¯¤À¤µ¤Ã¤¿»ö¤ò¡¢¼«Ê¬¤Ê¤ê¤Ë²ò¼á¤·¤¿·ë²Ì¡¢
­¡¥×¥í¥°¥é¥à¤Ï´Ö°ã¤Ã¤Æ¤¤¤Ê¤¤
­¢¥³¥ó¥Ñ¥¤¥é¤Î¥Ð¥°
¤À¤¬¡¢
­£BCC¤Î¾¤Î¥³¥ó¥Ñ¥¤¥é¤Ê¤éÄ̤ë
¤¬¡¢
­¤BCC5.5¤Ç¤ÏÄ̤é¤Ê¤¤
¤È¡¢²ò¼á¤·¤Þ¤·¤¿¡£

void ary_cpy(int *a,const int *b,int no)
¤ÎÊý¤â»î¤·¤Æ¤ß¤ë¤Èľ¤°¤Ë¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤·¤¿¡£

¤¤¤í¤¤¤í¤È¤³¤Ü¤ìÏäʤɤ⤢¤ê¤Þ¤·¤ÆÈó¾ï¤Ë»²¹Í¤Ë
¤Ê¤ê¤Þ¤·¤¿¡£

¤Þ¤¿¡¢¤Ê¤Ë¤«¤¢¤ê¤Þ¤·¤¿¤é¤è¤í¤·¤¯¤ª´ê¤¤Ãפ·¤Þ¤¹¡£

No.11420

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---YuO(2003/12/22 23:11:53)


º¬ËÜŪ¤Ê¤È¤³¤í¤ò´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¤Î¤Ç¡Ä¡Ä¡£


void ary_cpy(int * a,const int * b,int no) /*a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë*/
¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ì¤Ð¡¤¤Á¤ã¤ó¤È¥³¥ó¥Ñ¥¤¥ë¤òÄ̤ê¤Þ¤¹¡£

ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£
¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£
¡¦¡¦¡¦¥Ý¥¤¥ó¥¿¤ÈÇÛÎó¤Ï¤Þ¤Ã¤¿¤¯°ã¤¤¤Þ¤¹¤è (^.^)



ÇÛÎ󷿤Υª¥Ö¥¸¥§¥¯¥È¤¬Êѹ¹ÉÔ²Äǽ¤Êº¸ÊÕÃͤǤ¢¤ë¤³¤È¤Ï³Î¤«¤Ç¤¹¡£
¡ôÇÛÎ󷿤Υª¥Ö¥¸¥§¥¯¥È¤ÏÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¤·¤«¤·¡¤¤³¤³¤ÇÌäÂê¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï¡¤´Ø¿ô¤Î²¾°ú¿ôÃæ¤Ë¤¢¤ëÇÛÎ󷿤ÎÌäÂê¤Ç¤¹¡£

´Ø¿ô¤Î²¾°ú¿ô¤Ë¤¢¤ëÇÛÎó·¿µÚ¤Ó´Ø¿ô·¿¤Î°ú¿ô¤Ï¡¤JIS X 3010-1993 6.7.1 ´Ø¿ôÄêµÁ¤Î°ÕÌ£µ¬Â§¤ÎÂè»°ÃÊÍî¤ä¡¤
ISO/IEC 9899:1999 6.7.5.3 Function declarators (including prototypes)¤ÎParagraph 11µÚ¤Ó12¤Ë¤è¤Ã¤Æ¡¤
ÇÛÎó·¿¤ä´Ø¿ô·¿¤Ç¤Ï¤Ê¤¯¡ÖÇÛÎó¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¡×·¿¤ä¡Ö´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¡×·¿¤Î°ú¿ô¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
¤½¤Î·ë²Ì°ú¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¡¤¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤÏconst½¤¾þ¤µ¤ì¤Æ¤ª¤é¤ºÇÛÎ󷿤Ǥâ¤Ê¤¤¤Î¤Ç¡¤
¾ï¤ËÊѹ¹²Äǽ¤Êº¸ÊÕÃͤˤʤêÆÀ¤Þ¤¹¡£


¤Á¤Ê¤ß¤Ë¡¤¼°Ãæ¤Ë½Ð¤Æ¤¯¤ëÇÛÎ󻨼¨»Ò¤ä´Ø¿ô»Ø¼¨»Ò¤¬¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤µ¤ì¤ë¾ì¹ç¡¤
¤½¤ì¤é¤Ï´û¤Ëº¸ÊÕÃͤǤϤ¢¤ê¤Þ¤»¤ó¡£


¤³¤Î¤¢¤¿¤ê¤Ï¤ä¤ä¤³¤·¤¤¤Î¤Ç¡¤¤Á¤ã¤ó¤ÈÊÙ¶¯¤·¤Æ²¼¤µ¤¤¡£


No.11425

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤ª¤Ç¤ó(2003/12/22 23:42:55)


>º¬ËÜŪ¤Ê¤È¤³¤í¤ò´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¤Î¤Ç¡Ä¡Ä¡£
>
>
>
void ary_cpy(int * a,const int * b,int no) /*a¤Ëb¤ò¥³¥Ô¡¼¤¹¤ë*/
¤Î¤è¤¦¤Ë½ñ¤­´¹¤¨¤ì¤Ð¡¤¤Á¤ã¤ó¤È¥³¥ó¥Ñ¥¤¥ë¤òÄ̤ê¤Þ¤¹¡£

ÇÛÎó̾¤ÏÄê¿ô¤Ç¤¹¡£
¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ô¤Ç¤¹¡£
¡¦¡¦¡¦¥Ý¥¤¥ó¥¿¤ÈÇÛÎó¤Ï¤Þ¤Ã¤¿¤¯°ã¤¤¤Þ¤¹¤è (^.^)


>
>ÇÛÎ󷿤Υª¥Ö¥¸¥§¥¯¥È¤¬Êѹ¹ÉÔ²Äǽ¤Êº¸ÊÕÃͤǤ¢¤ë¤³¤È¤Ï³Î¤«¤Ç¤¹¡£
>¡ôÇÛÎ󷿤Υª¥Ö¥¸¥§¥¯¥È¤ÏÄê¿ô¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
>¤·¤«¤·¡¤¤³¤³¤ÇÌäÂê¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï¡¤´Ø¿ô¤Î²¾°ú¿ôÃæ¤Ë¤¢¤ëÇÛÎ󷿤ÎÌäÂê¤Ç¤¹¡£
>
>´Ø¿ô¤Î²¾°ú¿ô¤Ë¤¢¤ëÇÛÎó·¿µÚ¤Ó´Ø¿ô·¿¤Î°ú¿ô¤Ï¡¤JIS X 3010-1993 6.7.1 ´Ø¿ôÄêµÁ¤Î°ÕÌ£µ¬Â§¤ÎÂè»°ÃÊÍî¤ä¡¤
>ISO/IEC 9899:1999 6.7.5.3 Function declarators (including prototypes)¤ÎParagraph 11µÚ¤Ó12¤Ë¤è¤Ã¤Æ¡¤
>ÇÛÎó·¿¤ä´Ø¿ô·¿¤Ç¤Ï¤Ê¤¯¡ÖÇÛÎó¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¡×·¿¤ä¡Ö´Ø¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¡×·¿¤Î°ú¿ô¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
>¤½¤Î·ë²Ì°ú¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¡¤¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤÏconst½¤¾þ¤µ¤ì¤Æ¤ª¤é¤ºÇÛÎ󷿤Ǥâ¤Ê¤¤¤Î¤Ç¡¤
>¾ï¤ËÊѹ¹²Äǽ¤Êº¸ÊÕÃͤˤʤêÆÀ¤Þ¤¹¡£
>
>
>¤Á¤Ê¤ß¤Ë¡¤¼°Ãæ¤Ë½Ð¤Æ¤¯¤ëÇÛÎ󻨼¨»Ò¤ä´Ø¿ô»Ø¼¨»Ò¤¬¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤µ¤ì¤ë¾ì¹ç¡¤
>¤½¤ì¤é¤Ï´û¤Ëº¸ÊÕÃͤǤϤ¢¤ê¤Þ¤»¤ó¡£
>
>
>¤³¤Î¤¢¤¿¤ê¤Ï¤ä¤ä¤³¤·¤¤¤Î¤Ç¡¤¤Á¤ã¤ó¤ÈÊÙ¶¯¤·¤Æ²¼¤µ¤¤¡£

°Ê²¼¤Î¹Í¤¨¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©

void aa(){
  int a[10];
  int *p= a;

  abc(a,p);

}

void abc(int a[],int *p){
¤³¤³¤Î¥¹¥³¡¼¥×¤Ç¤Ï¡¢a¤ÏÇÛÎó¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡Ê¼ÂºÝ¤Ï¥¢¥É¥ì¥¹¤Ç¤¹¡Ë
½¾¤Ã¤ÆÊѹ¹ÉÔ²Ä
¡Ê¤³¤ì¤ò¡¢*a¤È¤·¤Æ¼õ¤±¤ì¤ÐÊѹ¹¤Ç¤­¤Þ¤¹¡£¤¬¡¢°ÕÌ£¤¬°ã¤¦¤È»×¤¤¤Þ¤¹¡Ë
p¤ÏƱ¤¸¤È¤³¤í¤ò»Ø¤·¤Æ¤¤¤ë¤¬¡¢¥Ý¥¤¥ó¥¿¤Ê¤Î¤ÇÊѹ¹²Ä
}



No.11427

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---YuO(2003/12/22 23:55:04)


>°Ê²¼¤Î¹Í¤¨¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
void abc(int a[],int *p){
¤³¤³¤Î¥¹¥³¡¼¥×¤Ç¤Ï¡¢a¤ÏÇÛÎó¤È¤·¤ÆÀë¸À¤µ¤ì¤Æ¤¤¤ë¡Ê¼ÂºÝ¤Ï¥¢¥É¥ì¥¹¤Ç¤¹¡Ë
½¾¤Ã¤ÆÊѹ¹ÉÔ²Ä
¡Ê¤³¤ì¤ò¡¢*a¤È¤·¤Æ¼õ¤±¤ì¤ÐÊѹ¹¤Ç¤­¤Þ¤¹¡£¤¬¡¢°ÕÌ£¤¬°ã¤¦¤È»×¤¤¤Þ¤¹¡Ë
p¤ÏƱ¤¸¤È¤³¤í¤ò»Ø¤·¤Æ¤¤¤ë¤¬¡¢¥Ý¥¤¥ó¥¿¤Ê¤Î¤ÇÊѹ¹²Ä
}


´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹¡£
´Ø¿ôabcÆâ¤Ë¤ª¤¤¤Æ¡¤a¤Ïint *·¿(¤Ä¤Þ¤ê¥Ý¥¤¥ó¥¿·¿)¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£
·è¤·¤Æ¡¤int·¿¤ÎÇÛÎ󷿤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¸Î¤Ë¡¤a¤ÏÊѹ¹²Äǽ¤Êº¸ÊÕÃͤȤ·¤Æµ¡Ç½¤¹¤ë¤Î¤Ç¡¤a¤Î»ý¤ÄÃͤòÊѹ¹¤¹¤ë¤³¤È¤Ï²Äǽ¤Ç¤¹¡£
Î㤨¤Ð¡¤
void abc(int a[], int *p) {
    int n = 0;
    a = &n;
}

¤ÏÀµ¤·¤¤C¥×¥í¥°¥é¥à¤Ç¤¹¡£
¡ô³°Éô¤«¤é¸«¤ë¤ÈÉûºîÍѤ¬Â¸ºß¤·¤Ê¤¤¤Î¤Ç¸Æ¤Ó½Ð¤¹°ÕÌ£¤Ï¤Ê¤¤¤Ç¤¹¤¬¡£


¤µ¤é¤Ë¸À¤¦¤È¡¤
> ¡Ê¼ÂºÝ¤Ï¥¢¥É¥ì¥¹¤Ç¤¹¡Ë
¤Ï°ÕÌ£ÉÔÌÀ¤Ç¤¹¡£
¥Ý¥¤¥ó¥¿¤È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¡¤ÉÔ´°Á´·¿¤Þ¤¿¤Ï´Ø¿ô¤ò»²¾È¤¹¤ë¤¿¤á¤ÎÃͤǤ¢¤Ã¤Æ¡¤
¥Ý¥¤¥ó¥¿¤¬¥¢¥É¥ì¥¹¤Ç¤¢¤ëɬÍ×À­¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¡ô¥ª¥Ö¥¸¥§¥¯¥È¤ÎÈÖ¹æ¤È¥ª¥Õ¥»¥Ã¥È¤Ç¤â¹½¤ï¤Ê¤¤¡£


No.11428

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---¤ª¤Ç¤ó(2003/12/23 00:01:28)


>¥Ý¥¤¥ó¥¿¤È¤Ï¥ª¥Ö¥¸¥§¥¯¥È¡¤ÉÔ´°Á´·¿¤Þ¤¿¤Ï´Ø¿ô¤ò»²¾È¤¹¤ë¤¿¤á¤ÎÃͤǤ¢¤Ã¤Æ¡¤
>¥Ý¥¤¥ó¥¿¤¬¥¢¥É¥ì¥¹¤Ç¤¢¤ëɬÍ×À­¤Ï¤¢¤ê¤Þ¤»¤ó¡£
>¡ô¥ª¥Ö¥¸¥§¥¯¥È¤ÎÈÖ¹æ¤È¥ª¥Õ¥»¥Ã¥È¤Ç¤â¹½¤ï¤Ê¤¤¡£

¾åµ­¤ªÏäϡ¢Íý²ò¤Ç¤­¤Þ¤·¤¿¡£
¥¢¥É¥ì¥¹¤Ç¤¢¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

No.11441

Re:const¤Î½ñ¤­´¹¤¨
Åê¹Æ¼Ô---YuO(2003/12/24 20:39:18)


>¾åµ­¤ªÏäϡ¢Íý²ò¤Ç¤­¤Þ¤·¤¿¡£

¤â¤¦°ìÊý¤Ï¡¤¡Ö²¿¤¬¡×Íý²ò¤Ç¤­¤Ê¤¤¤Î¤Ç¤¹¤«¡©

´Ø¿ô¤Î²¾°ú¿ôÃæ¤ÎÇÛÎ󷿤Υª¥Ö¥¸¥§¥¯¥È¤ÎÀë¸À¤Ï¡¤
¤½¤ÎÍ×ÁÇ·¿¤Ø¤Î¥Ý¥¤¥ó¥¿·¿¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀë¸À¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë¡¤
¤È¤¤¤¦¤³¤È¤Ï¸À¸ìµ¬Ìó¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë¤³¤È¤Ç¤¹¤«¤é¡¤
¡Ö¤½¤¦¤¤¤¦¤â¤Î¤À¡×¤ÈǼÆÀ¤¹¤ë¤·¤«¤Ê¤¤»ö¹à¤Ç¤¹¡£