C/C++ÖÐÊý×éÐβÎ(תÌû)
Ш×Ó
¡¡¡¡ È¥Ä꣬ÖÜÐÇÐÇ´ó¸çÔø¾ÔÚVCKBASE/C++ÂÛ̳·¢±í¹ýһƪÎÄÕ“Êý×éÒýÓÃ"ÒÔ±ÜÃâ"Êý×é½µ½×”£¬µ±Ê±ÎÒ²»ÄÜÉîÈëÀí½âÕâÖÖÓ÷¨µÄº¬Ò壻ʱ¸ôÒ»Ä꣬ÎÒµÄ֪ʶÓм¸¾´¸Á¶£¬ÖÕÓÚ¶Ô´ËÎÄÕ½¥ÓÐËùÎò£¬ËùÒÔ°ÑÎáËùÖª×÷Ïë¾ßÌåµÀÀ´£¬¾¹Ò²³ÉÁËһƪÎÄÕ¡£Ï£Íû±¾ÎÄÄܶÔÐÂÊÖÓÐËùÆôµÏ£¬Í¬Ê±Ò²Ï£Íû´ó¼Ò·¢ÏÖ±¾ÎÄÖеÄÊè©֮´¦ºó²»ÁßÁôÑÔÖ¸½Ì¡£
¡¡¡¡ ¹ÊÊÂÆðÔ´ÓÚÖÜÐÇÐÇ´ó¸ç¸ø³öµÄÁ½¸öDemo£¬ÎªÁ˽ÚÊ¡µØ·½£¬ÎÒ°ÑÁ½¸öDemoºÏ¶þΪһ£¬Ò²ÄÜ˵Ã÷ͬÑùµÄÎÊÌ⣺
¡¡¡¡#include <iostream>
¡¡¡¡using namespace std;
¡¡¡¡void Foo1(int arr[100])
¡¡¡¡{
¡¡¡¡cout << "pass by pointer: " << sizeof(arr) << endl;
¡¡¡¡}
¡¡¡¡void Foo2(int (&arr)[100])
¡¡¡¡{
¡¡¡¡cout << "pass by reference: " << sizeof(arr) << endl;
¡¡¡¡}
¡¡¡¡void main()
¡¡¡¡{
¡¡¡¡int a[100];
¡¡¡¡cout << "In main function : " << sizeof(a) << endl;
¡¡¡¡Foo1(a);
¡¡¡¡Foo2(a);
¡¡¡¡}
¡¡¡¡ÆäÔËÐнá¹ûÈçÏ£º
¡¡¡¡In main function : 400
¡¡¡¡pass by pointer: 4
¡¡¡¡pass by reference: 400
¡¡¡¡ Õâ¶Î´úÂë˵Ã÷ÁË£¬¼ÙÈçÊý×éÐβÎÊÇÊý×éÃûÐÎʽ(»òÕßÖ¸ÕëÐÎʽ£¬ÏÂÎÄÌÖÂÛ)ʱ£¬Ê¹ÓÃsizeofÔËËã·û£¬½«µÃ²»µ½ÔÀ´Êý×éµÄ³¤¶È£»¼ÙÈçÓô«µÝÔÊý×éÒýÓõķ½·¨£¬ÔòûÓÐÎÊÌâ¡£
¡¡¡¡ Õâ¶Î´úÂëµÄÈ·ºÜÄÑÀí½â£¬ÒòΪÕâ¶Ì¶ÌµÄÊ®¼¸ÐÐÉæ¼°µ½ÁËÐβÎÓëʵ²ÎµÄ¹Øϵ¡¢Êý×éÃûºÍÖ¸ÕëµÄ¹Øϵ¡¢ÒýÓõÄÒâÒå¡¢ÉùÃûºÍ±í´ïʽµÄ¹ØϵÕâ4´óÀàÎÊÌ⣬ֻҪÓÐ1ÌõÀí½â²»Í¸¡¢»òÕßÀí½â²»ÕýÈ·£¬¾ÍÀí½â²»Í¸ÉÏÃæµÄÕâ¶Î´úÂë¡£±¾ÎÄÒ²¾Í´ÓÕâ4¸öÎÊÌâÈëÊÖ£¬°ÑÕâ4¸öÎÊÌâÊ×ÏȽâ¾öµô£¬È»ºóÔÙ̽ÌÖÉÏÃæµÄÕâ¶Î´úÂë¡£ËäÈ»ÕâÑù¿´À´ºÜÊÇ·±¸´£¬µ«ÊÇÎÒÈÏΪ´Ó¸ùÉÏÈëÊÖÀ´Àí½â¡¢Ñ§Ï°£¬ÊÇÌõËÆԶʵ½üµÄµÀ·¡£
¡¡¡¡
¡¡¡¡ Ò»¡¢º¯ÊýÐβκÍʵ²ÎµÄ¹Øϵ
¡¡¡¡void Foo(int a);
¡¡¡¡Foo(10);
¡¡¡¡ ÕâÀïµÄa½Ð×öÐÎʽ²ÎÊý£¨parameter£©£¬¼ò³ÆÐβΣ»ÕâÀïµÄ10½Ð×öʵ¼Ê²ÎÊý£¨argument£©£¬¼ò³Æʵ²Î¡£ÐβκÍʽ²ÎÖ®¼äÊÇʲô¹ØϵÄØ£¿ËûÃÇÊǸ³ÖµµÄ¹Øϵ£¬Ò²¾ÍÊÇ˵£º°Ñʵ²Î´«µÝ¸øÐβεĹý³Ì£¬¿ÉÒÔ¿´×÷ÊÇ°Ñʵ²Î¸³Öµ¸øÐβεĹý³Ì¡£ÉÏÃæµÄÀý×ÓÖУ¬Êµ²Î10´«µÝ¸øÐβÎa£¬¾ÍÏ൱ÓÚa=10;Õâ¸ö¸³ÖµµÄ¹ý³Ì¡££¨ÒòΪÊý¾ÝÀàÐͶàµÄºÜ£¬ÎÞ·¨¾ÙÀý×Ó¾ÙÈ«Ã棬ËùÒÔÕâÀï¾Í²»¾ÙÀý×ÓÁË£»¼ÙÈç¾õµÃ²»ºÃÀí½â£¬¾ÍÔÚvcÖÐд¸ösampleµ÷ÊÔһϸ÷ÖÖÊý¾ÝÀàÐ͵ÄÇé¿ö£¬Äã¾ÍÄܹ»ÑéÖ¤Õâ¸ö½áÂÛÁË¡££©
¡¡¡¡
¡¡¡¡ ¶
Ïà¹ØÎĵµ£º
ת×Ô£ºhttp://blog.csdn.net/Lambol_8309/archive/2009/09/06/4524453.aspx
Ôø¾Åöµ½¹ýÈÃÄãÃԻ󲻽⡢ÀàËÆÓÚint * (* (*fp1) (int) ) [10];ÕâÑùµÄ±äÁ¿ÉùÃ÷Â𣿱¾ÎĽ«ÓÉÒ×µ½ÄÑ£¬Ò»²½Ò»²½½Ì»áÄãÈçºÎÀí½âÕâÖÖ¸´ÔÓµÄC/C++ÉùÃ÷¡£
¡¡¡¡ÎÒÃǽ«´ÓÿÌ춼ÄÜÅöµ½µÄ½Ï¼òµ¥µÄÉùÃ÷ÈëÊÖ£¬È»ºóÖð²½¼ÓÈëconstÐÞÊηûºÍtypedef£¬»¹Óк¯ÊýÖ¸Õ ......
int main()
{
printf(&unix["\021%six\012\0"], (unix)["have"] + "fun" - 0x60);
}
gcc -S±àÒë³É»ã±à´úÂëÈçÏÂ:
.file "test.c"
.section .rodata
.LC0:
&nbs ......
£¨Ò»£©
¶ÔÎļþ²Ù×÷ʱÓÐʱ»ñµÃÎļþµÄ´óСʱ±ØÒªµÄ.ÏÂÃæÊÇ»ñµÃÆä´óССµÄ½Ï¼òµ¥·½·¨.
#include<io.h> //CÓïÑÔÍ·Îļþ
#include<iostream> //for system();
using namespace std;
int main()
{
int handle;
handle = open("test.txt", 0x0100); //open file for rea ......