C/C+ÓïÑÔstructÉî²ã̽Ë÷
×÷ÕߣºËᦻª ³ö´¦£ºPConline
1. structµÄ¾Þ´ó×÷ÓÃ
¡¡¡¡Ãæ¶ÔÒ»¸öÈ˵ĴóÐÍC/C++³ÌÐòʱ£¬Ö»¿´Æä¶ÔstructµÄʹÓÃÇé¿öÎÒÃǾͿÉÒÔ¶ÔÆä±àдÕߵıà³Ì¾Ñé½øÐÐÆÀ¹À¡£ÒòΪһ¸ö´óÐ͵ÄC/C++³ÌÐò£¬ÊƱØÒªÉ漰һЩ(ÉõÖÁ´óÁ¿)½øÐÐÊý¾Ý×éºÏµÄ½á¹¹Ì壬ÕâЩ½á¹¹Ìå¿ÉÒÔ½«Ô±¾ÒâÒåÊôÓÚÒ»¸öÕûÌåµÄÊý¾Ý×éºÏÔÚÒ»Æð¡£´ÓijÖ̶ֳÈÉÏÀ´Ëµ£¬»á²»»áÓÃstruct£¬ÔõÑùÓà structÊÇÇø±ðÒ»¸ö¿ª·¢ÈËÔ±ÊÇ·ñ¾ß±¸·á¸»¿ª·¢¾ÀúµÄ±êÖ¾¡£
¡¡¡¡ÔÚÍøÂçÐÒ顢ͨÐÅ¿ØÖÆ¡¢Ç¶ÈëʽϵͳµÄC/C++±à³ÌÖУ¬ÎÒÃǾ³£Òª´«Ë͵IJ»ÊǼòµ¥µÄ×Ö½ÚÁ÷£¨charÐÍÊý×飩£¬¶øÊǶàÖÖÊý¾Ý×éºÏÆðÀ´µÄÒ»¸öÕûÌ壬Æä±íÏÖÐÎʽÊÇÒ»¸ö½á¹¹Ìå¡£
¡¡¡¡¾Ñé²»×ãµÄ¿ª·¢ÈËÔ±ÍùÍù½«ËùÓÐÐèÒª´«Ë͵ÄÄÚÈÝÒÀ˳Ðò±£´æÔÚcharÐÍÊý×éÖУ¬Í¨¹ýÖ¸ÕëÆ«ÒÆµÄ·½·¨´«ËÍÍøÂ籨ÎĵÈÐÅÏ¢¡£ÕâÑù×ö±à³Ì¸´ÔÓ£¬Ò׳ö´í£¬¶øÇÒÒ»µ©¿ØÖÆ·½Ê½¼°Í¨ÐÅÐÒéÓÐËù±ä»¯£¬³ÌÐò¾ÍÒª½øÐзdz£Ï¸ÖµÄÐ޸ġ£&nbs ......
Â¥Ö÷·¢±íÓÚ£º2009-07-24 10:11:03ÊÇÕâÑùµÄ,È¥Ò»¼Ò¹«Ë¾ÃæÊÔ,Óöµ½ÁËÒ»µÀcÓïÑÔµÄÌâ,¸öÈË
¸Ð¾õºÜ¹Ö,ÒÔǰû¼û¹ýÀàËÆµÄ,È»ºóÖ÷¿¼¹Ù˵ÕâÊǹØÓÚCÓïÑÔÇ¿ÈõÀàÐÍת»»Ê²Ã´µÄ,ÎҸоõËû
×Ô¼º¶¼²»ÍêÈ«Çå³þ,È»ºó»ØÀ´ÔÚÍøÉϲ鵽ÕâÊÇÓ¢¹ú½£ÇÅ´óÑ§ÍøÉϳöµÄ¼ÆËã»úÌâ :
#include <stdio.h>
#define init_employee(X,Y) {(X),(Y),wage_emp}
typedef struct Employee Em;
struct Employee {int hours,salary;int (*wage)(Em*);};
int wage_emp(Em *ths) {return ths->hours*ths->salary;}
#define init_manager(X,Y,Z) {(X),(Y),wage_man,(Z)}
typedef struct Manager Mn;
struct Manager {int hours,salary;int (*wage)(Mn*);int bonus;};
int wage_man(Mn *ths) {return ths->hours*ths->salary+ths->bonus;}
int main(void) {
Mn m = init_manager(40,10,20);
Em *e= (Em *) &m;
printf("%d\n",e->wage(e));
return 0;
}
×îºóÊä³öÊÇ420,¿ÉÎÒдµÄÊÇ400,ÓÐÇë¸ßÈËÄÜÏêϸ½âÊÍÏÂÕâÌâµÄÒâ˼ô,Ϊʲôº¯ÊýÖ¸Õëµ÷ÓÃ
µÄ²»ÊÇwage_emp,²ÎÊý¶¼²»Æ¥Åä°¢,¶øÇÒEm *e= (Em *) &mµ½µ×ÓÐʲôÒâÒå,ÒòΪËüºóÃæ»¹ÓÐ
Ìí¼ÓµÄÎÊÌâÊÇÓÃC++À´ÖØÐ´²¢ËµÃ÷ ......
Õ⼸ÌìÔÚʹÓÃÓÃCд¸öÏîÄ¿×éµÄ×Ô¶¯»¯²âÊÔ¹¤¾ßÀàËÆCGI³ÌÐò£¬µÚÒ»¸öÓöµ½µÄÎÊÌâ¾ÍÊDZàÂëÁË¡£
0~9 a~z A¡«ZÕâЩ×Ö·ûÊDz»»á±»±àÂëµÄ£¬µ«ÊDZÈÈçÒ»Ð©ÌØÊâ×Ö·û»òÊÇÖÐÎÄ£¬post»ògetÊý¾Ýʱ£¬»á¶ÔÊý¾Ý×Ô¶¯½øÐбàÂ룬±ÈÈ纺×Ö'ÖÐ',Èç¹ûÒ³Ãæ²ÉÓõÄÊÇgb2312±àÂ룬'ÖÐ'×ֻᱻ±àÂëΪ'%D6%D0'£¬ºöÂÔ'%'±êʶ,Á½¸öÊ®Áù½øÖÆÊý£¬¼´0xD6,0xD0£¬Áù¸ö×Ö·û¡£Èç¹ûÒ³ÃæÊÇutf-8±àÂ룬'ÖÐ'×ֻᱻ±àÂëΪ'%D6%D0%AD'£¬ºöÂÔ'%'±êʶ£¬Èý¸öÊ®Áù½øÖÆÊý£¬¼´0xD6,0xD0,0xAD,¾Å¸ö×Ö·û¡£
½âÂëʱ£¬±ÈÈçgb±àÂ룬Ҫ½«Áù¸ö×Ö·û±ä³ÉÁ½¸ö×Ö·û£¬¼´°Ñ×Ö·û´¦Àíºó£¬¿ÉÒÔ½«Á½¸öÊ®Áù½øÖÆÊýת»»ÎªÁ½¸öÊ®½øÖÆÊý£¬È»ºóÇ¿ÖÆ×ª»»ÎªÁ½¸ö×Ö·û¡£0xD6,214,0xD0,208;
char *encode="%D6%D0";
char decode[3];
decode[0]=214;//%D6,0xD6
decode[1]=208;//%D0,0xD0
decode[2]='\0';
printf("%s\n",decode);//Êä³ö'ÖÐ'¡£
utf-8±àÂë½âÂëÊÇͬÑùµÄÔÀí¡£
char *encode="%D6%D0%AD";
char decode[4];
decode[0]=214;//%D6,0xD6
decode[1]=208;//%D0,0xD0
decode[2]=173;//%AD,0xAD
decode[3]='\0';
printf("%s\n",decode);//Êä³ö'ÖÐ'¡£
¿ÉÒÔ¿´³öÀ´£¬²ÉÓÃutf-8£¬ÖÐÎıàÂë»áʹ´æ´¢¿Õ¼ä±ä´ó¡£¶ÔÓÚ½âÂ룬ÐèÒª¸öÊ®Áù½øÖƵ½Ê®½øÖƵÄת»»º¯ ......
#include <stdio.h>
#include <string.h>
/*
* decode encd with URL, the result saved to decd.
* return point to be decoded string.
* auth: baisoo email:baisoo@msn.com
*/
char *decode( char *encd, char decd[] );
int main( int argc, char *argv[] )
{
if( argc < 2 )
return -1;
char decoded[80];
decode( argv[1], decoded );
printf( "%s\n", decoded );
return 0;
}
char *decode( char *encd, char decd[] )
{
if( encd == NULL )
return (char* )0;
int i, j=0;
char *cd = encd;
char p[2];
unsigned int num;
for( i = 0; i < strlen( cd ); i++ )
{
memset( p, '\0', 2 );
if( cd[i] != '%' )
&nbs ......
C ÖУ¬
int ºÍlongµÄ·¶Î§Ò»Ñù£¬Ö»Äܱíʾ(-2^31~2^31)ÕûÊý£¬¼´£¨-20ÒÚ¡« 20ÒÚ£©
unsigned int Óëunsigned long ·¶Î§ÊÇ(0 ~2^32),40ÒÚ¶àÒ»µã¡£
Èç¹ûÒª±íʾ¸ü´óһЩµÄÕûÊý£¬ÕâÁ½ÖÖÊý¾ÝÀàÐ;Ͳ»ºÃÓÃÁË£¬ÔÚACMÖо³£Òª´¦ÀíÕâÑùµÄÊý¾ÝÀàÐÍ£¬ÒÔǰÎҵı¿·½·¨ÊÇ×öÒ»¸öÕûÐÎÊý×飬ÿ¸öa[i]´æÒ»Î»£¬ÕâÑù¼Ó¼õ³Ë³ýÔËËã¶¼Òª×Ô¼º¶¨Òå¡£¸Õ¸Õ¿´µ½ÍøÉϵÄÒ»¶Î´úÂ룬ÓõÄÊÇ__int64,8¸ö×Ö½ÚÀ´´æ´¢ÕûÊý£¬²Î¿¼ÁËһЩÎÄÕ£¬ÏÂÃæ½éÉÜËüµÄ·¶Î§ºÍÓ÷¨£º
__int64,·¶Î§£¨-2^63~2^63),¼´£¨-922ÒÚÒÚ¡«922ÒÚÒÚ£©
unsigned __int64,·¶Î§£¨0¡«2^64),1844ÒÚÒÚ¡£
__int64Ö§³ÖËÄÔò»ìºÏÔËËãºÍλÔËË㣬ÓëintÀàÐÍÔËË㽫×Ô¶¯½øÐÐÀàÐÍת»»µ½__int64
vc 6.0ÖÐÊäÈëÊä³ö£º
__int64:
scanf("%I64d",amp;a);
printf("%I64d",a);
unsigned __int64
scanf("%I64u",amp;a);
printf("%I64u",a);
dev C ÖÐÊäÈëÊä³ö£º
long long a;
a=100000000000000000ll ......
CÓïÑÔº¯ÊýµÄ³ö¿Ú:returnÓï¾ä£¨¸ßÖÊÁ¿c/c++±à³ÌÖ¸ÄÏ£© ÊÕ²Ø
½ñÌì¿´µ½ÁËһƪ¹ØÓÚc/c++ÓïÑÔÖÐ,¶ÔÓÚº¯Êý³ö¿Ú´¦:returnÓï¾äµÄÕýÈ·ÐÔºÍЧÂÊÐԵļì²éÎÊÌ⡣ƽʱÎÒÃǶ¼²»Ì«¿´ÖØreturnÓï¾äµÄ£¬ÈÏΪËü¼òµ¥£¬²»ÊǺÜÖØÒª£¬Æäʵ²»È»£¬returnÓï¾äÒªÊÇдµÄ²»ºÃ£¬ºÜÈÝÒ×µ¼ÖÂЧÂʵÍÏ£¬ÉõÖÁ»á³ö´í£¡ÌرðÊÇÔÚ´¦ÀíÖ¸Õëʱ¡£
ÏÂÃæ¿´¿´Òª×¢ÒâµÄһЩϸ½Ú£º
1.returnÓï¾ä²»¿É·µ»ØÖ¸Ïò“Õ»Äڴ攵ēָÕë”»ò“ÒýÓÔ£¬ÒòΪ“Õ»Äڴ攵ĿռäÔÚº¯ÊýÌå½áÊøÊ±£¬×Ô¶¯±»Ïú»Ù£¬Ö¸ÏòÕâÀïµÄÖ¸Õë¾Í»á³ö´í£¡
ÀýÈ磺
char * Function(void)
{
char str[]="Hello,world!"; //strµÄÄÚ´æÊÇÔÚFunctionÕâ¸öº¯ÊýµÄÕ»ÉϵÄ
return str; //ÕâÀï¾Í»á³ö´í£¬·µ»ØÊ±£¬strÒѾ²»ÖªµÀÖ¸ÏòÄÄÀïÁË
}
2.Òª¸ãÇå³þ·µ»ØµÄ¾¿¾¹ÊǓֵ”¡¢“Ö¸Õ딡¢»¹ÊÇ“ÒýÓÔ¡£
ÒòΪ·µ»ØÖµµÄ²»Í¬£¬´¦ÀíµÄ·½·¨Ò²²»Í¬£¬·ñÔò»á³ö´íµÄ
3.Èç¹ûº¯Êý·µ»ØµÄÖµÊÇÒ»¸ö¶ÔÏó£¬ÄÇô¾ÍÒª¿¼ÂÇreturnÓï¾äµÄЧÂÊÁË£¡
ÀýÈ磺´úÂë1
return String(str1+str2);
Õ ......
CÓïÑÔº¯ÊýµÄ³ö¿Ú:returnÓï¾ä£¨¸ßÖÊÁ¿c/c++±à³ÌÖ¸ÄÏ£© ÊÕ²Ø
½ñÌì¿´µ½ÁËһƪ¹ØÓÚc/c++ÓïÑÔÖÐ,¶ÔÓÚº¯Êý³ö¿Ú´¦:returnÓï¾äµÄÕýÈ·ÐÔºÍЧÂÊÐԵļì²éÎÊÌ⡣ƽʱÎÒÃǶ¼²»Ì«¿´ÖØreturnÓï¾äµÄ£¬ÈÏΪËü¼òµ¥£¬²»ÊǺÜÖØÒª£¬Æäʵ²»È»£¬returnÓï¾äÒªÊÇдµÄ²»ºÃ£¬ºÜÈÝÒ×µ¼ÖÂЧÂʵÍÏ£¬ÉõÖÁ»á³ö´í£¡ÌرðÊÇÔÚ´¦ÀíÖ¸Õëʱ¡£
ÏÂÃæ¿´¿´Òª×¢ÒâµÄһЩϸ½Ú£º
1.returnÓï¾ä²»¿É·µ»ØÖ¸Ïò“Õ»Äڴ攵ēָÕë”»ò“ÒýÓÔ£¬ÒòΪ“Õ»Äڴ攵ĿռäÔÚº¯ÊýÌå½áÊøÊ±£¬×Ô¶¯±»Ïú»Ù£¬Ö¸ÏòÕâÀïµÄÖ¸Õë¾Í»á³ö´í£¡
ÀýÈ磺
char * Function(void)
{
char str[]="Hello,world!"; //strµÄÄÚ´æÊÇÔÚFunctionÕâ¸öº¯ÊýµÄÕ»ÉϵÄ
return str; //ÕâÀï¾Í»á³ö´í£¬·µ»ØÊ±£¬strÒѾ²»ÖªµÀÖ¸ÏòÄÄÀïÁË
}
2.Òª¸ãÇå³þ·µ»ØµÄ¾¿¾¹ÊǓֵ”¡¢“Ö¸Õ딡¢»¹ÊÇ“ÒýÓÔ¡£
ÒòΪ·µ»ØÖµµÄ²»Í¬£¬´¦ÀíµÄ·½·¨Ò²²»Í¬£¬·ñÔò»á³ö´íµÄ
3.Èç¹ûº¯Êý·µ»ØµÄÖµÊÇÒ»¸ö¶ÔÏó£¬ÄÇô¾ÍÒª¿¼ÂÇreturnÓï¾äµÄЧÂÊÁË£¡
ÀýÈ磺´úÂë1
return String(str1+str2);
Õ ......