我ç»åŽ†äº†sizeof operator equivalent。
size_t size = (size_t)(1 + ((X*)0));
ä½†æ— æ³•ç†è§£(int*)0 or (int*)1000
çš„å«ä¹‰æ˜¯ä»€ä¹ˆã€‚
å‘Šè¯‰å¯¹ç¼–è¯‘å™¨æœ‰ä»€ä¹ˆä½œç”¨ï¼Ÿä¸ºä»€ä¹ˆæ·»åŠ ç»™ä»–ä»¬ï¼Ÿä½ èƒ½è¯¦ç»†è¯´æ˜Žå—?
ç”案 0 :(得分:3)
(int *)0
表示“将0视为整数的地å€â€ã€‚å‘æ¤æ·»åŠ 一个获å–内å˜ä¸â€œä¸‹ä¸€ä¸ªâ€æ•´æ•°çš„地å€ã€‚å› æ¤ï¼Œå°†ç»“果转æ¢å›žæ•´æ•°å¯ä»¥å¾—到整数的大å°ã€‚
但是,这å–å†³äºŽæœªå®šä¹‰çš„è¡Œä¸ºï¼Œå› æ¤æ‚¨ä¸åº”该使用它。
ç”案 1 :(得分:1)
è¿™åªæ˜¯åˆ›å»ºä¸€ä¸ªæŒ‡å‘地å€0的指针。 å‘å®ƒæ·»åŠ 1ç¡®å®žä¼šå¢žåŠ æŒ‡é’ˆã€‚ 这具有使地å€ä¸Žæ•°æ®ç±»åž‹çš„大å°ä¸€è‡´çš„效果。 在该示例ä¸ï¼Œsize将包å«ç±»X的大å°ï¼Œå› 为指针将按类X的大å°å‰è¿›ï¼Œå¹¶ä¸”å› ä¸ºåˆå§‹æŒ‡é’ˆå€¼ä¸ºé›¶ã€‚
ç”案 2 :(得分:1)
 Â了解
(int*)0
或(int*)1000
çš„å«ä¹‰æ˜¯ä»€ä¹ˆã€‚
这些åªæ˜¯æ¼”员表,与第二行完全相åŒï¼š
int a = 25;
short b = (short)a;
å°†a
投射到short
å¯è®©æ‚¨å°†å€¼åˆ†é…ç»™b
,该short
被输入为(int*)0
。与0
å®Œå…¨ç›¸åŒ - 您åªæ˜¯å‘Šè¯‰ç¼–译器将int
视为指å‘(int*)1000
的指针。
å…³äºŽæŠ•å°„çš„äº‹æƒ…æ˜¯ï¼Œä½ å®žé™…ä¸Šæ˜¯åœ¨å‘Šè¯‰ç¼–è¯‘å™¨ï¼šâ€œçœ‹ï¼Œæˆ‘çŸ¥é“我在这里åšä»€ä¹ˆï¼Œæ‰€ä»¥åšæˆ‘å‘Šè¯‰ä½ çš„äº‹æƒ…å¹¶åœæ¢æŠ±æ€¨ä¸åŒ¹é…的类型。â€è¿™æ„味ç€ä½ 确实需è¦çŸ¥é“ä½ åœ¨åšä»€ä¹ˆï¼Œä»¥åŠæœ€ç»ˆä»£ç 的效果是什么。包å«åƒ{{1}}è¿™æ ·çš„è¡¨è¾¾å¼çš„任何代ç 都å¯èƒ½æ˜¯a)高度怀疑和b)éžå¸¸ä¾èµ–于编译器以åŠç¼–写代ç çš„å¹³å°çš„细节。它å¯èƒ½åœ¨æŸç§åµŒå…¥å¼ç³»ç»Ÿä¸æœ‰æ„ä¹‰ï¼Œå› ä¸ºæ‚¨å¯ä»¥æŽ§åˆ¶æ•´ä¸ªç³»ç»Ÿï¼Œå› æ¤æ‚¨çŸ¥é“在内å˜ä½ç½®1000会å‘生什么。一般æ¥è¯´ï¼Œä½ 应该é¿å…è¿™æ ·çš„ä»£ç 。