C/C++ÓïÑÔÖÐÖ¸ÕëµÄÒâÒå
¿´µ½Õâ¸öÃæÊÔÌâ,¹À¼ÆºÜ¶à¸ÕѧCÖ¸ÕëµÄͬѧ¶¼»á¸ã´í.
void GetMemory(char *p)
{
// ´«µÝ½øÀ´µÄµÄֵʹµÃ*p==NULL
// ÕâÀïÐ޸ĵÄÊÇÕâ¸öº¯ÊýÄÚµÄÁÙʱָÕë±äÁ¿pµÄÖµ
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
// ´«µÝ½øÈ¥µÄÊÇstrµÄÖµNULL
GetMemory(str);
// ÕâÀïstrÖ¸Õ벢δ¸³Öµ,ÈÔÈ»ÊÇNULL,ËùÒÔÕâÀ︳ֵ»á³ö´í
strcpy(str, "Hello World");
printf("%s\n", str);
free(str);
}
ÎÒÃÇÖªµÀ¼ÆËã»úÖ»ÈÏʶ0ºÍ1,ËùÓеÄÊý¾Ý,°üÀ¨Í¼Æ¬,ÎÄ×ÖµÈ×îÖÕ¶¼ÊÇת»»³É0ºÍ1À´±íʾ.
ΪÁË·½±ã˵Ã÷,ÎÒÃÇÓÃÊ®Áù¸ö¶þ½øÖÆÊý×é³ÉµÄÒ»¸öÊ®Áù½øÖÆÊýÀ´±íʾ.
ÔÚwin32ϵͳÖÐ,ÄÚ´æµØÖ·ÊÇ´Ó0µ½2^32bit(Ï൱ÓÚ0µ½4GB),win32ÖÐVC6.0ÖÐÖ¸Õë±¾ÖʾÍÊÇÒ»¸öÕ¼4¸ö×Ö½ÚµÄÎÞ·ûºÅÕûÐÎ(unsigned int),ÄÜÈ¡0µ½2^32ÖÐËùÓеÄÖµµÄÈÎÒ»¸öÖµ,¼´Ö¸ÕëÄÜÏò¼ÆËã»úÄÚ´æÖÐÈκÎÒ»¸öµØÖ·.
// pCharÖ¸ÏòµÄÒ»¸öcharÐͱäÁ¿(×¢Òâ×Ö·ûºÍ×Ö·û´®¸ÅÄîÇø·Ö¿ª)
char *pChar = NULL;
// pIntÖ¸ÏòµÄÊÇÒ»¸öintÐͱäÁ¿
int *pInt = NULL;
// pDoubleÖ¸ÏòµÄÊÇÒ»¸öpDoubleÐͱäÁ¿
double *pDouble = NULL;
struct node
{
int i, j, k;
};
// pNodeÖ¸ÏòµÄÊÇÒ»¸ö×Ô¶¨Òå½á¹¹Ìå±äÁ¿
struct node *pNode = NULL;
class TestClass
{
TestClass()
{
}
~TestClass()
{
}
};
// pClassÖ¸ÏòµÄÊÇÒ»¸ö×Ô¶¨ÒåÀà±äÁ¿
TestClass *pClass = NULL;
void Test(void)
{
printf("This is test function!\n");
}
typedef void (*pFunction)(void);
// pFunÖ¸ÏòµÄÊÇÒ»¸öTestÐͺ¯Êý
pFunction pFun = Test;
void Test1(void)
{
printf("sizeof(pChar)=%d\n", sizeof(pChar));
printf("sizeof(pInt)=%d\n", sizeof(pInt));
printf("sizeof(pDouble)=%d\n", sizeof(pDouble));
printf("sizeof(pNode)=%d\n", sizeof(pNode));
printf("sizeof(pClass)=%d\n", sizeof(pClass));
printf("sizeof(pFun)=%d\n", sizeof(pFun));
}
´òÓ¡µÄ½á¹ûÈçÏÂ:
sizeof(pChar)=4
sizeof(pInt)=4
sizeof(pDouble)=4
sizeof(pNode)=4
sizeof(pClass)=4
sizeof(pFun)=4
Press any key to continue
ÉÏÃæ¶¨ÒåµÄÖ¸ÕëºÍÆäËüϵͳÄܶ¨ÒåµÄËùÓÐÖ¸ÕëÔÚwin32ϵͳÖÐÓÃsizeof²âÊÔ¶¼ÊÇ4.
Ö¸ÕëÓÐÊ²Ã´Çø±ðÄØ?
±ÈÈçchar *pCharºÍint *pInt:
pCharÖ»ÊǸæËß³ÌÐòÎ
Ïà¹ØÎĵµ£º
¿ìËÙÅÅÐòµÄºËÐÄÔÚÓÚ·ÖÖÎ.
·ÖÖÎËã·¨:
1. È϶¨Ö»ÓÐÒ»¸öÔªËØ»òûÓÐÔªËØµÄÊý×éÊÇÓÐÐòµÄ.
2. ½«Êý×é°´ÕÕÒ»¸ö·Ö½çÖµ·ÖΪ×óÓÒÁ½²¿·Ö. ×óÃæËùÓÐÔªËØÖµ±È·Ö½çֵС, ÓÒÃæËùÓÐÔªËØÖµ±È·Ö½çÖµ´ó»òµÈÓÚ.
3. ½«×óÓÒÁ½²¿·Ö·Ö±ðÔÙ·ÖÖÎ, Ö±µ½Òª·ÖÖ§µÄ²¿·ÖÖ»ÓÐÒ»¸öÔªËØ»òûÓÐÔªËØ, ÄÇôÕû¸öÊý×é¾ÍÊÇÓÐÐòµÄÁË.
×÷Õß: selfimpr
²©¿Í: http ......
Ò»¡¢´ÓCÓëC++±àÒëÁ¬½Ó·½Ê½ÉîÈëÀí½âextern "C"
<1>.CºÍC++¶Ôº¯ÊýµÄ´¦Àí·½Ê½ÊDz»Í¬µÄ.±»extern "C"ÐÞÊεıäÁ¿ºÍº¯ÊýÊǰ´ÕÕCÓïÑÔ·½Ê½±àÒëºÍÁ¬½ÓµÄ.extern "C"ÓÃÓÚʵÏÖC++ÓëC¼°ÆäËüÓïÑԵĻìºÏ±à³Ì¡£
<2>.δ¼Óextern “C”ÉùÃ÷ʱµÄ±àÒ뷽ʽ
Ê×ÏÈ¿´¿´C++ÖжÔÀàËÆCµÄº¯ÊýÊÇÔõÑù±àÒëµÄ¡£
×÷ΪһÖÖÃæÏò ......
11¡¢ÏÂÃæµÄ´úÂëÊä³öÊÇʲô£¬ÎªÊ²Ã´£¿
Void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b > 6) £¿puts("> 6") : puts("<= 6");
}
²»¹ÜÈçºÎ£¬ÕâÎÞ·ûºÅÕûÐÍÎÊÌâµÄ´ð°¸ÊÇÊä³öÊÇ“>6”¡£ÔÒòÊǵ±±í´ïʽÖдæÔÚÓзûºÅÀàÐͺÍÎÞ·ûºÅÀàÐÍʱËùÓеIJÙ×÷Êý¶¼×Ô¶¯×ª»»ÎªÎÞ·ûºÅÀàÐÍ¡£Òò´Ë-20±ä³ÉÁËÒ»¸ ......
µÚÒ»Õ µ¼ÑÔ
1£¬¶¨Òå(define)ÓëÉùÃ÷(declaration)
¶¨Òå±íʾ´´½¨±äÁ¿»ò·ÖÅä´æ´¢µ¥Ôª£»¶øÉùÃ÷Ö¸µÄÊÇ˵Ã÷±äÁ¿µÄÐÔÖÊ£¬µ«²»·ÖÅä´æ´¢µ¥Ôª¡£
µÚ¶þÕ ÀàÐÍ¡¢ÔËËã·ûºÍ±í´ïʽ
1£¬Êý¾ÝÀàÐͼ°³¤¶È
CÖÐÖ»ÓÐ4ÖÖ»ù±¾Êý¾ÝÀàÐÍ£ºchar ,int ,float ......
ÉÏѧÆÚ¼ä»ù±¾É϶¼ÔÚwindowsϱà³Ì£¬¾ÍÊÇѧÁËÒ»µãLINUX£¬Ò²ÊÇһЩ»ù±¾²Ù×÷£¬ÔÚLINUXϱà³Ì¼¸ºõûÓйý£¬Éϰàºó¶¼ÊÇÔÚUNIXϵĿª·¢£¬Í»È»Ö®¼äÓеã¸Ð¾õ×Ô¼ºÎÞ´¦ÏÂÊÖ£¬¸Ð¾õ²»»áÁË£¬×鳤ÈÃÎÒ±àÒ»¸ö³ÌÐò£¬ÎÒÏëÁ˰ëÌìÔÚÍøÉϲéÁ˰ëÌ죬Óеã˼·ÁË£¬ÔÚ±àÒëʱȷʵ´íÎóÁ¬Á¬£¬¸Ð¾õ¶¼ºÜÓÐѹÁ¦£¬µ«ÎÒ»áÂýÂýϰ¹ßµÄ£¬ÎÒÏàÐÅ×Ô¼º¡£
ÎÊÌ⣺
1 ......