c/c++ ×óÖµ ÓÒÖµÌÖÂÛ
×óÖµÐÔ£¨lvalueness£©ÔÚC/C++ÖÐÊDZí´ïʽµÄÒ»¸öÖØÒªÊôÐÔ¡£Ö»ÓÐͨ¹ýÒ»¸ö×óÖµ±í´ïʽ²ÅÄÜÀ´ÒýÓü°¸ü¸ÄÒ»¸ö¶ÔÏó£¨object£©µÄÖµ¡££¨Ä³Ð©Çé¿öÏ£¬ÓÒÖµ±í´ïʽҲÄÜÒýÓã¨refer£©µ½Ä³Ò»¸ö¶ÔÏ󣬲¢ÇÒ¿ÉÄܼä½ÓÐ޸ĸöÔÏóµÄÖµ£¬ºóÊö£©¡£
ºÎν¶ÔÏó£¿Èç¹ûûÓÐÃ÷ȷ˵Ã÷£¬ÕâÀï˵µÄ¶ÔÏ󣬺ÍÏÁÒåµÄÀà/¶ÔÏó£¨class/object£©Ïà±È£¬¸üΪ¹ã·º¡£ÔÚC/C++ÖУ¬ËùνµÄ¶ÔÏóÖ¸µÄÊÇÖ´Ðл·¾³ÖÐÒ»¿é´æ´¢ÇøÓò£¨a region of storage£©£¬¸Ã´æ´¢ÇøÓòÖеÄÄÚÈÝÔò´ú±í£¨represent£©Á˸öÔÏóµÄÖµ£¨value£©¡£×¢Òâµ½ÎÒÃÇÕâÀïËù˵µÄ"´ú±í"£¬¶ÔÓÚÒ»¸ö¶ÔÏó£¬Èç¹ûÎÒÃÇÐèҪȡ³ö£¨fetch£©ËüµÄÖµ£¬ÄÇôÎÒÃÇÐèҪͨ¹ýÒ»¶¨µÄÀàÐÍ£¨type£©À´ÒýÓÃËü¡£Ê¹Óò»Í¬µÄÀàÐÍ£¬¶Ôͬһ¶ÔÏóÖеÄÄÚÈݵĽâÊͻᵼÖ¿ÉÄܵõ½²»Í¬µÄÖµ£¬»òÕß²úÉúijЩ䶨ÒåµÄÐÐΪ¡£
ÔÚ½éÉÜ×óֵ֮ǰ£¬ÎÒÃÇ»¹ÐèÒªÒýÈëÒ»¸ö¸ÅÄ ±äÁ¿£¨variable£©¡£¾³£ÓÐÈË»á°Ñ±äÁ¿Óë¶ÔÏó¶þÕß»ìÏý¡£Ê²Ã´½Ð±äÁ¿£¿Ëùν±äÁ¿ÊÇÒ»ÖÖÉùÃ÷£¬Í¨¹ýÉùÃ÷£¬ÎÒÃǰÑÒ»¸öÃû×Ö£¨name£©ÓëÒ»¸ö¶ÔÏó¶ÔÓ¦ÆðÀ´£¬µ±ÎÒÃÇʹÓøÃÃû×Öʱ£¬¾Í±íʾÁËÎÒÃǶԸöÔÏó½øÐÐijÖÖ²Ù×÷¡£µ«ÊDz¢²»ÊÇÿ¸ö¶ÔÏó¶¼ÓÐÃû×Ö£¬Ò²²¢²»Òâζ×ÅÓжÔÓ¦µÄ±äÁ¿¡£±ÈÈçÁÙʱ¶ÔÏó£¨temporary object£©¾ÍûÓÐÒ»¸öÃû×ÖÓëÖ®¹ØÁª£¨²»ÒªÎó³ÆÎªÁÙʱ±äÁ¿£¬ÕâÊDz»ÕýÈ·µÄ˵·¨£©¡£
1 CÖеÄ×óÖµ
1.1°´ÕÕCµÄ¶¨Ò壬×óÖµÊÇÒ»¸öÒýÓõ½¶ÔÏóµÄ±í´ïʽ£¬Í¨¹ý×óÖµÎÒÃÇ¿ÉÒÔÈ¡³ö¸Ã¶ÔÏóµÄÖµ¡£Í¨¹ý¿ÉÐ޸ĵÄ×óÖµ±í´ïʽ£¨modifiable lvalue£©ÎÒÃÇ»¹¿ÉÒÔÐ޸ĸöÔÏóµÄÖµ¡££¨ÐèҪ˵Ã÷µÄÊÇ£¬ÔÚC++ÖУ¬×óÖµ»¹¿ÉÒÔÒýÓõ½º¯Êý£¬¼´±í´ïʽfÈç¹ûÒýÓõÄÊǺ¯ÊýÀàÐÍ£¬ÄÇôÔÚCÖÐËü¼È²»ÊÇ×óÖµÒ²²»ÊÇÓÒÖµ£»¶øÔÚC++ÖÐÔòÊÇ×óÖµ£©¡£ÒòΪ×óÖµÒýÓõ½Ä³Ò»¶ÔÏó£¬Òò´ËÎÒÃÇʹÓÃ&¶Ô×óÖµ±í´ïʽ£¨Ò²Ö»ÄܶÔ×óÖµ±í´ïʽºÍº¯Êý£©È¡Ö·ÔËËãʱ£¬¿ÉÒÔ»ñµÃ¸Ã¶ÔÏóµÄµØÖ·£¨ÓÐÁ½ÖÖ×óÖµ±í´ïʽ²»ÄÜȡַ£¬Ò»ÊǾßÓÐλÓò£¨ bit-field £©ÀàÐÍ£¬ÒòΪʵÏÖÖÐ×îСѰַµ¥Î»ÊÇ byte£»ÁíÒ»¸öÊǾßÓÐregisterÖ¸¶¨·û£¬Ê¹ÓÃregisterÐÞÊεıäÁ¿±àÒëÆ÷¿ÉÄÜ»áÓÅ»¯µ½¼Ä´æÆ÷ÖУ©¡£
Ex1.1
char a[10]; // a is an lvalue representing an array of 10 ints.
char (* p)[10]=&a; // &a is the address of the array a.
const char* p="hello world"; //"hello world" is an lvalue of type char[12]
&
Ïà¹ØÎĵµ£º
µ±Òª½»»»Á½¸öÊýµÄֵʱ£¬Í¨³£µÄ×ö·¨ÊǶ¨ÒåÒ»¸öÁÙʱ±äÁ¿£¬È»ºóÔÙ½øÐн»»»¡£ÄÇôÄܲ»Äܲ»ÓÃÁÙʱ±äÁ¿¶ø½»»»Á½¸öÊýµÄֵĨ£¿¿ÉÒԵģ¡CÓïÑÔÌṩµÄÒì»òÔËËã¾Í¿ÉÒÔʵÏÖÕâÑùµÄ²Ù×÷¡£
Òì»òÔËËã·û^Ò²³ÆXORÔËËã·û£¬ËüµÄ¹æÔòÊÇÈô²Î¼ÓÔËËãµÄÁ½¸ö¶þ½øÎ»Í¬ºÅ£¬Ôò½á¹ûΪ0£¨¼Ù£©£»ÒìºÅΪ1£¨Õ棩¡£¼´0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, ......
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd )
{
OPENFILENAME ofn;
//ÔÚÄÚ´æÖпª±ÙÒ»¿é¿Õ¼ä£¬´æ·ÅÓû§Ñ¡È¡µÄÎļþÃû
char szFile[MAX_PATH];//MAX_PATH ......
http://www.ddj.com/cpp/221600722
Q: HOW DO I... put timers with default actions in my C code?
A: Many times, we need to write programs that will only wait a certain specified amount of time for a user to do something. After that time, we need to assume that the user isn't going to do anything and ......
Ò»¡¢
1¡¢¹ØÓÚ×Ö½Ú˳Ðò£º»°ËµÔÚÌØ¶¨µÄÓ²¼þƽ̨ÉÏ£¬¶à×Ö½ÚÊý¾ÝµÄ˳Ðò´æ·ÅÓÐÁ½ÖÖ·½Ê½£¨little-endian¡¢big-endian£©¡£Ç°ÕßµÄÊý¾ÝµÄµÍ×Ö½Ú
²¿·Ö´æ·ÅÔڵ͵ØÖ·Äڴ棬ºóÕßÇ¡ºÃÏà·´¡£PCÒ»°ãÊÇ»ùÓÚIA-32΢´¦ÀíÆ÷£¬ÊôÓÚlittle-endian¡£Ä³Ð©RISC¼Ü¹¹µÄCPU£¬ÀýÈçSPARC¡¢
POWERPCµÈ£¬ÔòÊ ......