Àí½â¸´ÔÓµÄC/C++ÉùÃ÷ const, typedef , º¯ÊýÖ¸Õë
ÈÃÎÒÃÇ´ÓÒ»¸ö·Ç³£¼òµ¥µÄÀý×Ó¿ªÊ¼£¬ÈçÏ£º
int n;
Õâ¸öÓ¦¸Ã±»Àí½âΪ“declare n as an int”£¨nÊÇÒ»¸öintÐ͵ıäÁ¿£©¡£
½ÓÏÂÈ¥À´¿´Ò»ÏÂÖ¸Õë±äÁ¿£¬ÈçÏ£º
int *p;
Õâ
¸öÓ¦¸Ã±»Àí½âΪ“declare p as an int *”£¨pÊÇÒ»¸öint
*Ð͵ıäÁ¿£©£¬»òÕß˵pÊÇÒ»¸öÖ¸ÏòÒ»¸öintÐͱäÁ¿µÄÖ¸Õë¡£ÎÒÏëÔÚÕâÀïÕ¹¿ªÌÖÂÛһϣºÎÒ¾õµÃÔÚÉùÃ÷Ò»¸öÖ¸Õ루»òÒýÓã©ÀàÐ͵ıäÁ¿Ê±£¬×îºÃ½«*
£¨»ò&£©Ð´ÔÚ½ô¿¿±äÁ¿Ö®Ç°£¬¶ø²»Êǽô¸ú»ù±¾ÀàÐÍÖ®ºó¡£ÕâÑù¿ÉÒÔ±ÜÃâһЩÀí½âÉϵÄÎóÇø£¬±ÈÈ磺
int* p,q;
µÚÒ»ÑÛ¿´È¥£¬ºÃÏñÊÇpºÍq¶¼ÊÇint*ÀàÐ͵쬵«ÊÂʵÉÏ£¬Ö»ÓÐpÊÇÒ»¸öÖ¸Õ룬¶øqÊÇÒ»¸ö×î¼òµ¥µÄintÐͱäÁ¿¡£
ÎÒÃÇ»¹ÊǼÌÐøÎÒÃÇÇ°ÃæµÄ»°Ì⣬ÔÙÀ´¿´Ò»¸öÖ¸ÕëµÄÖ¸ÕëµÄÀý×Ó£º
char **argv;
ÀíÂÛÉÏ£¬¶ÔÓÚÖ¸ÕëµÄ¼¶ÊýûÓÐÏÞÖÆ£¬Äã¿ÉÒÔ¶¨ÒåÒ»¸ö¸¡µãÀàÐͱäÁ¿µÄÖ¸ÕëµÄÖ¸ÕëµÄÖ¸ÕëµÄÖ¸Õë...
ÔÙÀ´¿´ÈçϵÄÉùÃ÷£º
int RollNum[30][4];
int (*p)[4]=RollNum;
int *q[5];
ÕâÀp±»ÉùÃ÷Ϊһ¸öÖ¸ÏòÒ»¸ö4ÔªËØ£¨intÀàÐÍ£©Êý×éµÄÖ¸Õ룬¶øq±»ÉùÃ÷Ϊһ¸ö°üº¬5¸öÔªËØ£¨intÀàÐ͵ÄÖ¸Õ룩µÄÊý×é¡£
ÁíÍ⣬ÎÒÃÇ»¹¿ÉÒÔÔÚͬһ¸öÉùÃ÷ÖлìºÏʵÓÃ*ºÍ&£¬ÈçÏ£º
int **p1; // p1 is a pointer to a pointer to an int.
int *&p2; // p2 is a reference to a pointer to an int.
int &*p3; // ERROR: Pointer to a reference is illegal.
int &&p4; // ERROR: Reference to a reference is illegal.
×¢£ºp1ÊÇÒ»¸öintÀàÐ͵ÄÖ¸ÕëµÄÖ¸Õ룻p2ÊÇÒ»¸öintÀàÐ͵ÄÖ¸ÕëµÄÒýÓã»p3ÊÇÒ»¸öintÀàÐÍÒýÓõÄÖ¸Õ루²»ºÏ·¨£¡£©£»p4ÊÇÒ»¸öintÀàÐÍÒýÓõÄÒýÓ㨲»ºÏ·¨£¡£©¡£
constÐÞÊηû
µ±ÄãÏë×èÖ¹Ò»¸ö±äÁ¿±»¸Ä±ä£¬¿ÉÄÜ»áÓõ½const¹Ø¼ü×Ö¡£ÔÚÄã¸øÒ»¸ö±äÁ¿¼ÓÉÏconstÐÞÊηûµÄͬʱ£¬Í¨³£ÐèÒª¶ÔËü½øÐгõʼ»¯£¬ÒòΪÒÔºóµÄÈκÎʱºòÄ㽫ûÓлú»áÔÙÈ¥¸Ä±äËü¡£ÀýÈ磺
const int n=5;
int const m=10;
ÉÏÊöÁ½¸ö±äÁ¿nºÍmÆäʵÊÇͬһÖÖÀàÐ͵Ä--¶¼ÊÇconst int£¨ÕûÐκãÁ¿£©¡£ÒòΪC++±ê×¼¹æ¶¨£¬const¹Ø¼ü×Ö·ÅÔÚÀàÐÍ»ò±äÁ¿Ãû֮ǰµÈ¼ÛµÄ¡£ÎÒ¸öÈ˸üϲ»¶µÚÒ»ÖÖÉùÃ÷·½Ê½£¬ÒòΪËü¸üÍ»³öÁËconstÐÞÊηûµÄ×÷Óá£
µ±constÓëÖ¸ÕëÒ»ÆðʹÓÃʱ£¬ÈÝÒ×ÈÃÈ˸е½ÃÔ»ó¡£ÀýÈ磬ÎÒÃÇÀ´¿´Ò»ÏÂÏÂÃæµÄpºÍqµÄÉùÃ÷£º
const int *p;
int const *q;
ËûÃǵ±ÖÐÄÄÒ»¸ö´ú±íconst intÀàÐ͵ÄÖ¸Õ루constÖ±½ÓÐÞÊÎint£©£¬ÄÄÒ»¸ö´ú±íintÀàÐ͵ÄconstÖ¸Õ루constÖ±½ÓÐÞÊÎÖ¸Õ룩£¿Êµ¼ÊÉÏ£¬pºÍq¶¼±»ÉùÃ
Ïà¹ØÎĵµ£º
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
C λ²Ù×÷
ʱ¼ä£º2009-10-9
×÷Õߣºsofa120
×¢£º ×ªÔØÇë˵Ã÷³ö´¦
/////////////////////////// ......
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
ÊÇCÉî¶È½âÆÊ P47µÄһϵÁйØÓÚdefineºÍtypedefµÄÓ÷¨£º
/****ÒÔÏÂÊÇ
#define
a int[10]
µÄ¸÷ÖÖÓ÷¨£¬¶¼±¨´í
***
a[10]
a[10];
//**************
a[10]
a;
//**************
int
a[10];
//*** ......
¡¡ ÉÐÒ×CÓÊÏäÊÇÒ»¿îÍêÈ«´òÆÆÁËÆóÒµÓÊÏäÒ»¹áģʽµÄвúÆ·¡£ÆóÒµÄܹ»ÍêÈ«×ÔÖ÷¾ö¶¨ÓÊÏäµÄÒ»ÇУ¬Ö»ÒªÊÇÆóÒµÌá³öµÄÐèÇó£¬ÎÞÂÛÊÇ´Óµ¥¶À·þÎñÆ÷¼ÜÉè¡¢¶ÀÏíµÄ´ø¿íÐèÇó¡¢¹¦Ä͍ܵ֯£¬ÒÔ¼°Óë°ì¹«OA²úÆ·»ò²»Í¬Èí¼þµÄÈںϵȣ¬ÉÐÒ×CÓÊÏä¶¼¿ÉÒÔΪÆä×öµ½¡£´ËÍ⣬ÉÐÒ×CÓÊÏ仹»áΪÿ¸öÆóÒµÅäÖÃרÏí¼¼Êõ¹¤³Ìʦ£¬´Ó×î³õµÄ·½°¸Äⶨµ½ºóÆÚµÄ ......
ÈÝÒ×´íÎóµÄʹÓÃÖ¸Õë:
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str ÈÔȻΪ NULL
strcpy(str, "hello"); // ÔËÐдíÎó
}
벡³öÔÚº¯ÊýGetMemory ÖС£±àÒëÆ÷×ÜÊÇÒ ......