[{"data":1,"prerenderedAt":2891},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen":2471,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen":2875,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen":2890},{"id":4,"title":5,"body":6,"canonicalPath":2452,"chapterDepth":2453,"chapterOrder":2454,"date":2455,"description":61,"docI18nKey":2456,"docKey":2457,"docRoot":2458,"docTitle":2459,"extension":2460,"i18nKey":2461,"isBlogPost":2462,"isWikiDoc":86,"isWikiIndex":2462,"layout":2463,"legacyPath":2463,"locale":2464,"localeSlug":2465,"meta":2466,"navigation":86,"path":2452,"seo":2467,"sourcePath":2468,"sourceStem":2461,"stem":2469,"wikiDepth":68,"__hash__":2470},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针.md","pointer",{"type":7,"value":8,"toc":2440},"minimark",[9,12,17,25,39,43,50,55,276,285,293,296,304,310,315,320,324,345,348,354,360,368,371,375,551,556,562,567,571,577,583,589,594,679,689,695,700,793,799,804,808,813,832,840,876,881,904,912,945,950,971,976,1008,1024,1029,1121,1124,1127,1139,1143,1356,1361,1366,1370,1375,1379,1623,1627,1633,1637,1642,1646,1946,1950,1956,1961,1965,1971,1977,1981,2421,2425,2431,2436],[10,11,5],"h2",{"id":5},[13,14,16],"h3",{"id":15},"basic-concept-of-pointers","Basic concept of pointers",[18,19,20,24],"p",{},[21,22,23],"strong",{},"The Role of Pointers:"," Allows indirect memory access through pointers.",[26,27,28,32],"ul",{},[29,30,31],"li",{},"Memory addresses start from 0 and are typically represented in hexadecimal numbers.",[29,33,34,35,38],{},"Pointer variables can be used to store addresses.",[36,37],"br",{},"​",[13,40,42],{"id":41},"definition-and-usage-of-pointer-variables","Definition and Usage of Pointer Variables",[18,44,45,46],{},"Pointer variable definition syntax: ",[47,48,49],"code",{},"数据类型 * 变量名；",[18,51,52],{},[21,53,54],{},"Example:",[56,57,62],"pre",{"className":58,"code":59,"language":60,"meta":61,"style":61},"language-cpp shiki shiki-themes github-light github-dark","int main() {\n\n    \u002F\u002F1、指针的定义\n    int a = 10; \u002F\u002F定义整型变量a\n    \n    \u002F\u002F指针定义语法： 数据类型 * 变量名 ;\n    int * p;\n\n    \u002F\u002F指针变量赋值\n    p = &a; \u002F\u002F指针指向变量a的地址\n    cout \u003C\u003C &a \u003C\u003C endl; \u002F\u002F打印数据a的地址\n    cout \u003C\u003C p \u003C\u003C endl;  \u002F\u002F打印指针变量p\n\n    \u002F\u002F2、指针的使用\n    \u002F\u002F通过*操作指针变量指向的内存\n    cout \u003C\u003C \"*p = \" \u003C\u003C *p \u003C\u003C endl;\n\n\n    return 0;\n}\n","cpp","",[47,63,64,81,88,95,117,123,129,140,145,151,168,190,207,212,218,224,248,253,258,270],{"__ignoreMap":61},[65,66,69,73,77],"span",{"class":67,"line":68},"line",1,[65,70,72],{"class":71},"szBVR","int",[65,74,76],{"class":75},"sScJk"," main",[65,78,80],{"class":79},"sVt8B","() {\n",[65,82,84],{"class":67,"line":83},2,[65,85,87],{"emptyLinePlaceholder":86},true,"\n",[65,89,91],{"class":67,"line":90},3,[65,92,94],{"class":93},"sJ8bj","    \u002F\u002F1、指针的定义\n",[65,96,98,101,104,107,111,114],{"class":67,"line":97},4,[65,99,100],{"class":71},"    int",[65,102,103],{"class":79}," a ",[65,105,106],{"class":71},"=",[65,108,110],{"class":109},"sj4cs"," 10",[65,112,113],{"class":79},";",[65,115,116],{"class":93}," \u002F\u002F定义整型变量a\n",[65,118,120],{"class":67,"line":119},5,[65,121,122],{"class":79},"    \n",[65,124,126],{"class":67,"line":125},6,[65,127,128],{"class":93},"    \u002F\u002F指针定义语法： 数据类型 * 变量名 ;\n",[65,130,132,134,137],{"class":67,"line":131},7,[65,133,100],{"class":71},[65,135,136],{"class":71}," *",[65,138,139],{"class":79}," p;\n",[65,141,143],{"class":67,"line":142},8,[65,144,87],{"emptyLinePlaceholder":86},[65,146,148],{"class":67,"line":147},9,[65,149,150],{"class":93},"    \u002F\u002F指针变量赋值\n",[65,152,154,157,159,162,165],{"class":67,"line":153},10,[65,155,156],{"class":79},"    p ",[65,158,106],{"class":71},[65,160,161],{"class":71}," &",[65,163,164],{"class":79},"a;",[65,166,167],{"class":93}," \u002F\u002F指针指向变量a的地址\n",[65,169,171,174,177,179,182,184,187],{"class":67,"line":170},11,[65,172,173],{"class":79},"    cout ",[65,175,176],{"class":71},"\u003C\u003C",[65,178,161],{"class":71},[65,180,181],{"class":79},"a ",[65,183,176],{"class":71},[65,185,186],{"class":79}," endl;",[65,188,189],{"class":93}," \u002F\u002F打印数据a的地址\n",[65,191,193,195,197,200,202,204],{"class":67,"line":192},12,[65,194,173],{"class":79},[65,196,176],{"class":71},[65,198,199],{"class":79}," p ",[65,201,176],{"class":71},[65,203,186],{"class":79},[65,205,206],{"class":93},"  \u002F\u002F打印指针变量p\n",[65,208,210],{"class":67,"line":209},13,[65,211,87],{"emptyLinePlaceholder":86},[65,213,215],{"class":67,"line":214},14,[65,216,217],{"class":93},"    \u002F\u002F2、指针的使用\n",[65,219,221],{"class":67,"line":220},15,[65,222,223],{"class":93},"    \u002F\u002F通过*操作指针变量指向的内存\n",[65,225,227,229,231,235,238,240,243,245],{"class":67,"line":226},16,[65,228,173],{"class":79},[65,230,176],{"class":71},[65,232,234],{"class":233},"sZZnC"," \"*p = \"",[65,236,237],{"class":71}," \u003C\u003C",[65,239,136],{"class":71},[65,241,242],{"class":79},"p ",[65,244,176],{"class":71},[65,246,247],{"class":79}," endl;\n",[65,249,251],{"class":67,"line":250},17,[65,252,87],{"emptyLinePlaceholder":86},[65,254,256],{"class":67,"line":255},18,[65,257,87],{"emptyLinePlaceholder":86},[65,259,261,264,267],{"class":67,"line":260},19,[65,262,263],{"class":71},"    return",[65,265,266],{"class":109}," 0",[65,268,269],{"class":79},";\n",[65,271,273],{"class":67,"line":272},20,[65,274,275],{"class":79},"}\n",[18,277,278],{},[21,279,280,281,284],{},"运行结果（地址每次运行可能不同，以下用 ",[47,282,283],{},"\u003C地址>"," 表示）：",[56,286,291],{"className":287,"code":289,"language":290,"meta":61},[288],"language-text","\u003C地址>\n\u003C地址>\n*p = 10\n","text",[47,292,289],{"__ignoreMap":61},[18,294,295],{},"The difference between pointer variables and ordinary variables is that a pointer variable stores the address of another variable, while an ordinary variable stores the actual data. A pointer allows you to indirectly access and manipulate the data of other variables.",[26,297,298,301],{},[29,299,300],{},"Ordinary variables store data, while pointer variables store addresses.",[29,302,303],{},"Pointer variables can access the memory space they point to using the \"*\" operator, a process known as dereferencing.",[305,306,307],"blockquote",{},[18,308,309],{},"Summary 1: We can use the & symbol to obtain the address of a variable.",[305,311,312],{},[18,313,314],{},"Summary 2: Using pointers to record addresses",[305,316,317],{},[18,318,319],{},"Summary 3: Dereferencing a pointer variable allows manipulation of the memory it points to.",[13,321,323],{"id":322},"the-memory-space-occupied-by-a-pointer-depends-on-the-system-architecture-and-the-programming-language-in-most-cases","The memory space occupied by a pointer depends on the system architecture and the programming language. In most cases:",[26,325,326,337],{},[29,327,328,329,332,333,336],{},"On a ",[21,330,331],{},"32-bit system",", a pointer typically occupies ",[21,334,335],{},"4 bytes",".",[29,338,328,339,332,342,336],{},[21,340,341],{},"64-bit system",[21,343,344],{},"8 bytes",[18,346,347],{},"However, the exact size can vary based on the language implementation, compiler settings, and hardware platform. For example, in some embedded systems or specific configurations, pointer sizes may differ. Always refer to the language specifications or system documentation for precise details.",[18,349,350,353],{},[21,351,352],{},"Question:"," Pointers are a type of data type, so how much memory space does this data type occupy?",[18,355,356,359],{},[21,357,358],{},"Answer:"," The size of a pointer in memory depends on the system architecture:",[26,361,362,365],{},[29,363,364],{},"In a 32-bit system, a pointer typically occupies 4 bytes.",[29,366,367],{},"In a 64-bit system, a pointer typically occupies 8 bytes.",[18,369,370],{},"This allows the pointer to store a memory address corresponding to the system’s addressable memory range.",[18,372,373],{},[21,374,54],{},[56,376,378],{"className":58,"code":377,"language":60,"meta":61,"style":61},"int main() {\n\n    int a = 10;\n\n    int * p;\n    p = &a; \u002F\u002F指针指向数据a的地址\n\n    cout \u003C\u003C *p \u003C\u003C endl; \u002F\u002F* 解引用\n    cout \u003C\u003C sizeof(p) \u003C\u003C endl;\n    cout \u003C\u003C sizeof(char *) \u003C\u003C endl;\n    cout \u003C\u003C sizeof(float *) \u003C\u003C endl;\n    cout \u003C\u003C sizeof(double *) \u003C\u003C endl;\n\n\n    return 0;\n}\n",[47,379,380,388,392,404,408,416,429,433,450,466,489,510,531,535,539,547],{"__ignoreMap":61},[65,381,382,384,386],{"class":67,"line":68},[65,383,72],{"class":71},[65,385,76],{"class":75},[65,387,80],{"class":79},[65,389,390],{"class":67,"line":83},[65,391,87],{"emptyLinePlaceholder":86},[65,393,394,396,398,400,402],{"class":67,"line":90},[65,395,100],{"class":71},[65,397,103],{"class":79},[65,399,106],{"class":71},[65,401,110],{"class":109},[65,403,269],{"class":79},[65,405,406],{"class":67,"line":97},[65,407,87],{"emptyLinePlaceholder":86},[65,409,410,412,414],{"class":67,"line":119},[65,411,100],{"class":71},[65,413,136],{"class":71},[65,415,139],{"class":79},[65,417,418,420,422,424,426],{"class":67,"line":125},[65,419,156],{"class":79},[65,421,106],{"class":71},[65,423,161],{"class":71},[65,425,164],{"class":79},[65,427,428],{"class":93}," \u002F\u002F指针指向数据a的地址\n",[65,430,431],{"class":67,"line":131},[65,432,87],{"emptyLinePlaceholder":86},[65,434,435,437,439,441,443,445,447],{"class":67,"line":142},[65,436,173],{"class":79},[65,438,176],{"class":71},[65,440,136],{"class":71},[65,442,242],{"class":79},[65,444,176],{"class":71},[65,446,186],{"class":79},[65,448,449],{"class":93}," \u002F\u002F* 解引用\n",[65,451,452,454,456,459,462,464],{"class":67,"line":147},[65,453,173],{"class":79},[65,455,176],{"class":71},[65,457,458],{"class":71}," sizeof",[65,460,461],{"class":79},"(p) ",[65,463,176],{"class":71},[65,465,247],{"class":79},[65,467,468,470,472,474,477,480,482,485,487],{"class":67,"line":153},[65,469,173],{"class":79},[65,471,176],{"class":71},[65,473,458],{"class":71},[65,475,476],{"class":79},"(",[65,478,479],{"class":71},"char",[65,481,136],{"class":71},[65,483,484],{"class":79},") ",[65,486,176],{"class":71},[65,488,247],{"class":79},[65,490,491,493,495,497,499,502,504,506,508],{"class":67,"line":170},[65,492,173],{"class":79},[65,494,176],{"class":71},[65,496,458],{"class":71},[65,498,476],{"class":79},[65,500,501],{"class":71},"float",[65,503,136],{"class":71},[65,505,484],{"class":79},[65,507,176],{"class":71},[65,509,247],{"class":79},[65,511,512,514,516,518,520,523,525,527,529],{"class":67,"line":192},[65,513,173],{"class":79},[65,515,176],{"class":71},[65,517,458],{"class":71},[65,519,476],{"class":79},[65,521,522],{"class":71},"double",[65,524,136],{"class":71},[65,526,484],{"class":79},[65,528,176],{"class":71},[65,530,247],{"class":79},[65,532,533],{"class":67,"line":209},[65,534,87],{"emptyLinePlaceholder":86},[65,536,537],{"class":67,"line":214},[65,538,87],{"emptyLinePlaceholder":86},[65,540,541,543,545],{"class":67,"line":220},[65,542,263],{"class":71},[65,544,266],{"class":109},[65,546,269],{"class":79},[65,548,549],{"class":67,"line":226},[65,550,275],{"class":79},[18,552,553],{},[21,554,555],{},"运行结果（类型大小或类型名可能随编译器和平台变化）：",[56,557,560],{"className":558,"code":559,"language":290,"meta":61},[288],"10\n8\n8\n8\n8\n",[47,561,559],{"__ignoreMap":61},[305,563,564],{},[18,565,566],{},"Summary: All pointer types are 4 bytes in a 32-bit operating system.",[13,568,570],{"id":569},"null-pointer-and-dangling-pointer","Null Pointer and Dangling Pointer",[18,572,573,576],{},[21,574,575],{},"Null pointer",": A pointer variable pointing to memory address 0",[18,578,579,582],{},[21,580,581],{},"Purpose:"," Initializing pointer variables",[18,584,585,588],{},[21,586,587],{},"Note:"," The memory pointed to by a null pointer cannot be accessed.",[18,590,591],{},[21,592,593],{},"Example 1: Null pointer",[56,595,597],{"className":58,"code":596,"language":60,"meta":61,"style":61},"int main() {\n\n    \u002F\u002F指针变量p指向内存地址编号为0的空间\n    int * p = NULL;\n\n    \u002F\u002F访问空指针报错 \n    \u002F\u002F内存编号0 ~255为系统占用内存，不允许用户访问\n    cout \u003C\u003C *p \u003C\u003C endl;\n\n\n    return 0;\n}\n",[47,598,599,607,611,616,631,635,640,645,659,663,667,675],{"__ignoreMap":61},[65,600,601,603,605],{"class":67,"line":68},[65,602,72],{"class":71},[65,604,76],{"class":75},[65,606,80],{"class":79},[65,608,609],{"class":67,"line":83},[65,610,87],{"emptyLinePlaceholder":86},[65,612,613],{"class":67,"line":90},[65,614,615],{"class":93},"    \u002F\u002F指针变量p指向内存地址编号为0的空间\n",[65,617,618,620,622,624,626,629],{"class":67,"line":97},[65,619,100],{"class":71},[65,621,136],{"class":71},[65,623,199],{"class":79},[65,625,106],{"class":71},[65,627,628],{"class":109}," NULL",[65,630,269],{"class":79},[65,632,633],{"class":67,"line":119},[65,634,87],{"emptyLinePlaceholder":86},[65,636,637],{"class":67,"line":125},[65,638,639],{"class":93},"    \u002F\u002F访问空指针报错 \n",[65,641,642],{"class":67,"line":131},[65,643,644],{"class":93},"    \u002F\u002F内存编号0 ~255为系统占用内存，不允许用户访问\n",[65,646,647,649,651,653,655,657],{"class":67,"line":142},[65,648,173],{"class":79},[65,650,176],{"class":71},[65,652,136],{"class":71},[65,654,242],{"class":79},[65,656,176],{"class":71},[65,658,247],{"class":79},[65,660,661],{"class":67,"line":147},[65,662,87],{"emptyLinePlaceholder":86},[65,664,665],{"class":67,"line":153},[65,666,87],{"emptyLinePlaceholder":86},[65,668,669,671,673],{"class":67,"line":170},[65,670,263],{"class":71},[65,672,266],{"class":109},[65,674,269],{"class":79},[65,676,677],{"class":67,"line":192},[65,678,275],{"class":79},[18,680,681,684,685,688],{},[21,682,683],{},"运行结果："," 程序触发未定义行为，本次运行收到 ",[47,686,687],{},"SIGSEGV"," 后异常终止，没有可靠的正常输出。",[18,690,691,694],{},[21,692,693],{},"Dangling pointer",": A pointer variable that points to illegal memory space.",[18,696,697],{},[21,698,699],{},"Example 2: Wild pointer",[56,701,703],{"className":58,"code":702,"language":60,"meta":61,"style":61},"int main() {\n\n    \u002F\u002F指针变量p指向内存地址编号为0x1100的空间\n    int * p = (int *)0x1100;\n\n    \u002F\u002F访问野指针报错 \n    cout \u003C\u003C *p \u003C\u003C endl;\n\n\n    return 0;\n}\n",[47,704,705,713,717,722,750,754,759,773,777,781,789],{"__ignoreMap":61},[65,706,707,709,711],{"class":67,"line":68},[65,708,72],{"class":71},[65,710,76],{"class":75},[65,712,80],{"class":79},[65,714,715],{"class":67,"line":83},[65,716,87],{"emptyLinePlaceholder":86},[65,718,719],{"class":67,"line":90},[65,720,721],{"class":93},"    \u002F\u002F指针变量p指向内存地址编号为0x1100的空间\n",[65,723,724,726,728,730,732,735,737,739,742,745,748],{"class":67,"line":97},[65,725,100],{"class":71},[65,727,136],{"class":71},[65,729,199],{"class":79},[65,731,106],{"class":71},[65,733,734],{"class":79}," (",[65,736,72],{"class":71},[65,738,136],{"class":71},[65,740,741],{"class":79},")",[65,743,744],{"class":71},"0x",[65,746,747],{"class":109},"1100",[65,749,269],{"class":79},[65,751,752],{"class":67,"line":119},[65,753,87],{"emptyLinePlaceholder":86},[65,755,756],{"class":67,"line":125},[65,757,758],{"class":93},"    \u002F\u002F访问野指针报错 \n",[65,760,761,763,765,767,769,771],{"class":67,"line":131},[65,762,173],{"class":79},[65,764,176],{"class":71},[65,766,136],{"class":71},[65,768,242],{"class":79},[65,770,176],{"class":71},[65,772,247],{"class":79},[65,774,775],{"class":67,"line":142},[65,776,87],{"emptyLinePlaceholder":86},[65,778,779],{"class":67,"line":147},[65,780,87],{"emptyLinePlaceholder":86},[65,782,783,785,787],{"class":67,"line":153},[65,784,263],{"class":71},[65,786,266],{"class":109},[65,788,269],{"class":79},[65,790,791],{"class":67,"line":170},[65,792,275],{"class":79},[18,794,795,684,797,688],{},[21,796,683],{},[47,798,687],{},[305,800,801],{},[18,802,803],{},"Summary: Null pointers and wild pointers are not allocated memory spaces we requested, so never dereference them.",[13,805,807],{"id":806},"const-modifier-for-pointers-in-cc-creates-different-pointer-constness-scenarios-heres-the-breakdown","const modifier for pointers in C\u002FC++ creates different pointer constness scenarios. Here's the breakdown:",[18,809,810],{},[21,811,812],{},"1. Pointer to non-const (const modifies what's pointed to):",[56,814,816],{"className":58,"code":815,"language":60,"meta":61,"style":61},"const int* ptr; \u002F\u002F or int const* ptr;\n",[47,817,818],{"__ignoreMap":61},[65,819,820,823,826,829],{"class":67,"line":68},[65,821,822],{"class":71},"const",[65,824,825],{"class":71}," int*",[65,827,828],{"class":79}," ptr;",[65,830,831],{"class":93}," \u002F\u002F or int const* ptr;\n",[26,833,834,837],{},[29,835,836],{},"The data pointed to cannot be modified through this pointer.",[29,838,839],{},"The pointer itself can be changed to point elsewhere.",[56,841,843],{"className":58,"code":842,"language":60,"meta":61,"style":61},"*ptr = 10; \u002F\u002F Error: cannot modify the value\nptr = &anotherInt; \u002F\u002F OK: can change the pointer's target\n",[47,844,845,862],{"__ignoreMap":61},[65,846,847,850,853,855,857,859],{"class":67,"line":68},[65,848,849],{"class":71},"*",[65,851,852],{"class":79},"ptr ",[65,854,106],{"class":71},[65,856,110],{"class":109},[65,858,113],{"class":79},[65,860,861],{"class":93}," \u002F\u002F Error: cannot modify the value\n",[65,863,864,866,868,870,873],{"class":67,"line":83},[65,865,852],{"class":79},[65,867,106],{"class":71},[65,869,161],{"class":71},[65,871,872],{"class":79},"anotherInt;",[65,874,875],{"class":93}," \u002F\u002F OK: can change the pointer's target\n",[18,877,878],{},[21,879,880],{},"2. Const pointer (const modifies the pointer itself):",[56,882,884],{"className":58,"code":883,"language":60,"meta":61,"style":61},"int* const ptr = &someInt;\n",[47,885,886],{"__ignoreMap":61},[65,887,888,891,894,897,899,901],{"class":67,"line":68},[65,889,890],{"class":71},"int*",[65,892,893],{"class":71}," const",[65,895,896],{"class":79}," ptr ",[65,898,106],{"class":71},[65,900,161],{"class":71},[65,902,903],{"class":79},"someInt;\n",[26,905,906,909],{},[29,907,908],{},"The pointer itself cannot be changed; it must be initialized.",[29,910,911],{},"The data it points to can be modified.",[56,913,915],{"className":58,"code":914,"language":60,"meta":61,"style":61},"ptr = &anotherInt; \u002F\u002F Error: cannot change the pointer\n*ptr = 10; \u002F\u002F OK: can modify the pointed-to value\n",[47,916,917,930],{"__ignoreMap":61},[65,918,919,921,923,925,927],{"class":67,"line":68},[65,920,852],{"class":79},[65,922,106],{"class":71},[65,924,161],{"class":71},[65,926,872],{"class":79},[65,928,929],{"class":93}," \u002F\u002F Error: cannot change the pointer\n",[65,931,932,934,936,938,940,942],{"class":67,"line":83},[65,933,849],{"class":71},[65,935,852],{"class":79},[65,937,106],{"class":71},[65,939,110],{"class":109},[65,941,113],{"class":79},[65,943,944],{"class":93}," \u002F\u002F OK: can modify the pointed-to value\n",[18,946,947],{},[21,948,949],{},"3. Const pointer to const data (both are const):",[56,951,953],{"className":58,"code":952,"language":60,"meta":61,"style":61},"const int* const ptr = &someInt;\n",[47,954,955],{"__ignoreMap":61},[65,956,957,959,961,963,965,967,969],{"class":67,"line":68},[65,958,822],{"class":71},[65,960,825],{"class":71},[65,962,893],{"class":71},[65,964,896],{"class":79},[65,966,106],{"class":71},[65,968,161],{"class":71},[65,970,903],{"class":79},[26,972,973],{},[29,974,975],{},"Neither the pointer nor the data can be modified through this pointer.",[56,977,979],{"className":58,"code":978,"language":60,"meta":61,"style":61},"ptr = &anotherInt; \u002F\u002F Error\n*ptr = 10; \u002F\u002F Error\n",[47,980,981,994],{"__ignoreMap":61},[65,982,983,985,987,989,991],{"class":67,"line":68},[65,984,852],{"class":79},[65,986,106],{"class":71},[65,988,161],{"class":71},[65,990,872],{"class":79},[65,992,993],{"class":93}," \u002F\u002F Error\n",[65,995,996,998,1000,1002,1004,1006],{"class":67,"line":83},[65,997,849],{"class":71},[65,999,852],{"class":79},[65,1001,106],{"class":71},[65,1003,110],{"class":109},[65,1005,113],{"class":79},[65,1007,993],{"class":93},[18,1009,1010,1013,1014,1016,1017,1020,1021,1023],{},[21,1011,1012],{},"Key Point:"," The ",[47,1015,822],{}," applies to whatever is immediately to its left. If nothing is to its left (as in ",[47,1018,1019],{},"const int*","), it modifies the next item (the ",[47,1022,72],{},").",[18,1025,1026],{},[21,1027,1028],{},"Quick Reference Table:",[1030,1031,1032,1059],"table",{},[1033,1034,1035],"thead",{},[1036,1037,1038,1043,1051,1056],"tr",{},[1039,1040,1042],"th",{"align":1041},"left","Declaration",[1039,1044,1046,1047,1050],{"align":1045},"center","Can modify ",[47,1048,1049],{},"*ptr","?",[1039,1052,1046,1053,1050],{"align":1045},[47,1054,1055],{},"ptr",[1039,1057,1058],{"align":1041},"Meaning",[1060,1061,1062,1078,1093,1107],"tbody",{},[1036,1063,1064,1070,1073,1075],{},[1065,1066,1067],"td",{"align":1041},[47,1068,1069],{},"int* ptr",[1065,1071,1072],{"align":1045},"Yes",[1065,1074,1072],{"align":1045},[1065,1076,1077],{"align":1041},"Normal pointer to non-const data.",[1036,1079,1080,1085,1088,1090],{},[1065,1081,1082],{"align":1041},[47,1083,1084],{},"const int* ptr",[1065,1086,1087],{"align":1045},"No",[1065,1089,1072],{"align":1045},[1065,1091,1092],{"align":1041},"Pointer to const data.",[1036,1094,1095,1100,1102,1104],{},[1065,1096,1097],{"align":1041},[47,1098,1099],{},"int* const ptr",[1065,1101,1072],{"align":1045},[1065,1103,1087],{"align":1045},[1065,1105,1106],{"align":1041},"Const pointer to non-const data.",[1036,1108,1109,1114,1116,1118],{},[1065,1110,1111],{"align":1041},[47,1112,1113],{},"const int* const ptr",[1065,1115,1087],{"align":1045},[1065,1117,1087],{"align":1045},[1065,1119,1120],{"align":1041},"Const pointer to const data.",[18,1122,1123],{},"This distinction is crucial for API design, function parameters (to prevent accidental modification), and ensuring data integrity.",[18,1125,1126],{},"There are three cases of const-modifying pointers.",[1128,1129,1130,1133,1136],"ol",{},[29,1131,1132],{},"Const-modified pointer --- constant pointer",[29,1134,1135],{},"const-modified constant  ---  pointer constant",[29,1137,1138],{},"const qualifies both pointers and constants.",[18,1140,1141],{},[21,1142,54],{},[56,1144,1146],{"className":58,"code":1145,"language":60,"meta":61,"style":61},"int main() {\n\n    int a = 10;\n    int b = 10;\n\n    \u002F\u002Fconst修饰的是指针，指针指向可以改，指针指向的值不可以更改\n    const int * p1 = &a; \n    p1 = &b; \u002F\u002F正确\n    \u002F\u002F*p1 = 100;  报错\n    \n\n    \u002F\u002Fconst修饰的是常量，指针指向不可以改，指针指向的值可以更改\n    int * const p2 = &a;\n    \u002F\u002Fp2 = &b; \u002F\u002F错误\n    *p2 = 100; \u002F\u002F正确\n\n    \u002F\u002Fconst既修饰指针又修饰常量\n    const int * const p3 = &a;\n    \u002F\u002Fp3 = &b; \u002F\u002F错误\n    \u002F\u002F*p3 = 100; \u002F\u002F错误\n\n\n    return 0;\n}\n",[47,1147,1148,1156,1160,1172,1185,1189,1194,1214,1229,1234,1238,1242,1247,1265,1273,1290,1294,1299,1318,1325,1332,1337,1342,1351],{"__ignoreMap":61},[65,1149,1150,1152,1154],{"class":67,"line":68},[65,1151,72],{"class":71},[65,1153,76],{"class":75},[65,1155,80],{"class":79},[65,1157,1158],{"class":67,"line":83},[65,1159,87],{"emptyLinePlaceholder":86},[65,1161,1162,1164,1166,1168,1170],{"class":67,"line":90},[65,1163,100],{"class":71},[65,1165,103],{"class":79},[65,1167,106],{"class":71},[65,1169,110],{"class":109},[65,1171,269],{"class":79},[65,1173,1174,1176,1179,1181,1183],{"class":67,"line":97},[65,1175,100],{"class":71},[65,1177,1178],{"class":79}," b ",[65,1180,106],{"class":71},[65,1182,110],{"class":109},[65,1184,269],{"class":79},[65,1186,1187],{"class":67,"line":119},[65,1188,87],{"emptyLinePlaceholder":86},[65,1190,1191],{"class":67,"line":125},[65,1192,1193],{"class":93},"    \u002F\u002Fconst修饰的是指针，指针指向可以改，指针指向的值不可以更改\n",[65,1195,1196,1199,1202,1204,1207,1209,1211],{"class":67,"line":131},[65,1197,1198],{"class":71},"    const",[65,1200,1201],{"class":71}," int",[65,1203,136],{"class":71},[65,1205,1206],{"class":79}," p1 ",[65,1208,106],{"class":71},[65,1210,161],{"class":71},[65,1212,1213],{"class":79},"a; \n",[65,1215,1216,1219,1221,1223,1226],{"class":67,"line":142},[65,1217,1218],{"class":79},"    p1 ",[65,1220,106],{"class":71},[65,1222,161],{"class":71},[65,1224,1225],{"class":79},"b;",[65,1227,1228],{"class":93}," \u002F\u002F正确\n",[65,1230,1231],{"class":67,"line":147},[65,1232,1233],{"class":93},"    \u002F\u002F*p1 = 100;  报错\n",[65,1235,1236],{"class":67,"line":153},[65,1237,122],{"class":79},[65,1239,1240],{"class":67,"line":170},[65,1241,87],{"emptyLinePlaceholder":86},[65,1243,1244],{"class":67,"line":192},[65,1245,1246],{"class":93},"    \u002F\u002Fconst修饰的是常量，指针指向不可以改，指针指向的值可以更改\n",[65,1248,1249,1251,1253,1255,1258,1260,1262],{"class":67,"line":209},[65,1250,100],{"class":71},[65,1252,136],{"class":71},[65,1254,893],{"class":71},[65,1256,1257],{"class":79}," p2 ",[65,1259,106],{"class":71},[65,1261,161],{"class":71},[65,1263,1264],{"class":79},"a;\n",[65,1266,1267,1270],{"class":67,"line":214},[65,1268,1269],{"class":93},"    \u002F\u002Fp2 = &b;",[65,1271,1272],{"class":93}," \u002F\u002F错误\n",[65,1274,1275,1278,1281,1283,1286,1288],{"class":67,"line":220},[65,1276,1277],{"class":71},"    *",[65,1279,1280],{"class":79},"p2 ",[65,1282,106],{"class":71},[65,1284,1285],{"class":109}," 100",[65,1287,113],{"class":79},[65,1289,1228],{"class":93},[65,1291,1292],{"class":67,"line":226},[65,1293,87],{"emptyLinePlaceholder":86},[65,1295,1296],{"class":67,"line":250},[65,1297,1298],{"class":93},"    \u002F\u002Fconst既修饰指针又修饰常量\n",[65,1300,1301,1303,1305,1307,1309,1312,1314,1316],{"class":67,"line":255},[65,1302,1198],{"class":71},[65,1304,1201],{"class":71},[65,1306,136],{"class":71},[65,1308,893],{"class":71},[65,1310,1311],{"class":79}," p3 ",[65,1313,106],{"class":71},[65,1315,161],{"class":71},[65,1317,1264],{"class":79},[65,1319,1320,1323],{"class":67,"line":260},[65,1321,1322],{"class":93},"    \u002F\u002Fp3 = &b;",[65,1324,1272],{"class":93},[65,1326,1327,1330],{"class":67,"line":272},[65,1328,1329],{"class":93},"    \u002F\u002F*p3 = 100;",[65,1331,1272],{"class":93},[65,1333,1335],{"class":67,"line":1334},21,[65,1336,87],{"emptyLinePlaceholder":86},[65,1338,1340],{"class":67,"line":1339},22,[65,1341,87],{"emptyLinePlaceholder":86},[65,1343,1345,1347,1349],{"class":67,"line":1344},23,[65,1346,263],{"class":71},[65,1348,266],{"class":109},[65,1350,269],{"class":79},[65,1352,1354],{"class":67,"line":1353},24,[65,1355,275],{"class":79},[18,1357,1358,1360],{},[21,1359,683],{}," 程序正常结束，终端没有输出。",[305,1362,1363],{},[18,1364,1365],{},"Tip: Look at what immediately follows the const. If it's a pointer, it's a constant pointer; if it's a constant, it's a pointer constant.",[13,1367,1369],{"id":1368},"pointers-and-arrays","pointers and arrays",[18,1371,1372,1374],{},[21,1373,581],{}," Access elements in an array using a pointer.",[18,1376,1377],{},[21,1378,54],{},[56,1380,1382],{"className":58,"code":1381,"language":60,"meta":61,"style":61},"int main() {\n\n    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };\n\n    int * p = arr;  \u002F\u002F指向数组的指针\n\n    cout \u003C\u003C \"第一个元素： \" \u003C\u003C arr[0] \u003C\u003C endl;\n    cout \u003C\u003C \"指针访问第一个元素： \" \u003C\u003C *p \u003C\u003C endl;\n\n    for (int i = 0; i \u003C 10; i++)\n    {\n        \u002F\u002F利用指针遍历数组\n        cout \u003C\u003C *p \u003C\u003C endl;\n        p++;\n    }\n\n\n    return 0;\n}\n",[47,1383,1384,1392,1396,1460,1464,1480,1484,1508,1527,1531,1564,1569,1574,1589,1598,1603,1607,1611,1619],{"__ignoreMap":61},[65,1385,1386,1388,1390],{"class":67,"line":68},[65,1387,72],{"class":71},[65,1389,76],{"class":75},[65,1391,80],{"class":79},[65,1393,1394],{"class":67,"line":83},[65,1395,87],{"emptyLinePlaceholder":86},[65,1397,1398,1400,1403,1405,1408,1411,1414,1417,1419,1422,1424,1427,1429,1432,1434,1437,1439,1442,1444,1447,1449,1452,1454,1457],{"class":67,"line":90},[65,1399,100],{"class":71},[65,1401,1402],{"class":79}," arr[] ",[65,1404,106],{"class":71},[65,1406,1407],{"class":79}," { ",[65,1409,1410],{"class":109},"1",[65,1412,1413],{"class":79},",",[65,1415,1416],{"class":109},"2",[65,1418,1413],{"class":79},[65,1420,1421],{"class":109},"3",[65,1423,1413],{"class":79},[65,1425,1426],{"class":109},"4",[65,1428,1413],{"class":79},[65,1430,1431],{"class":109},"5",[65,1433,1413],{"class":79},[65,1435,1436],{"class":109},"6",[65,1438,1413],{"class":79},[65,1440,1441],{"class":109},"7",[65,1443,1413],{"class":79},[65,1445,1446],{"class":109},"8",[65,1448,1413],{"class":79},[65,1450,1451],{"class":109},"9",[65,1453,1413],{"class":79},[65,1455,1456],{"class":109},"10",[65,1458,1459],{"class":79}," };\n",[65,1461,1462],{"class":67,"line":97},[65,1463,87],{"emptyLinePlaceholder":86},[65,1465,1466,1468,1470,1472,1474,1477],{"class":67,"line":119},[65,1467,100],{"class":71},[65,1469,136],{"class":71},[65,1471,199],{"class":79},[65,1473,106],{"class":71},[65,1475,1476],{"class":79}," arr;",[65,1478,1479],{"class":93},"  \u002F\u002F指向数组的指针\n",[65,1481,1482],{"class":67,"line":125},[65,1483,87],{"emptyLinePlaceholder":86},[65,1485,1486,1488,1490,1493,1495,1498,1501,1504,1506],{"class":67,"line":131},[65,1487,173],{"class":79},[65,1489,176],{"class":71},[65,1491,1492],{"class":233}," \"第一个元素： \"",[65,1494,237],{"class":71},[65,1496,1497],{"class":79}," arr[",[65,1499,1500],{"class":109},"0",[65,1502,1503],{"class":79},"] ",[65,1505,176],{"class":71},[65,1507,247],{"class":79},[65,1509,1510,1512,1514,1517,1519,1521,1523,1525],{"class":67,"line":142},[65,1511,173],{"class":79},[65,1513,176],{"class":71},[65,1515,1516],{"class":233}," \"指针访问第一个元素： \"",[65,1518,237],{"class":71},[65,1520,136],{"class":71},[65,1522,242],{"class":79},[65,1524,176],{"class":71},[65,1526,247],{"class":79},[65,1528,1529],{"class":67,"line":147},[65,1530,87],{"emptyLinePlaceholder":86},[65,1532,1533,1536,1538,1540,1543,1545,1547,1550,1553,1555,1558,1561],{"class":67,"line":153},[65,1534,1535],{"class":71},"    for",[65,1537,734],{"class":79},[65,1539,72],{"class":71},[65,1541,1542],{"class":79}," i ",[65,1544,106],{"class":71},[65,1546,266],{"class":109},[65,1548,1549],{"class":79},"; i ",[65,1551,1552],{"class":71},"\u003C",[65,1554,110],{"class":109},[65,1556,1557],{"class":79},"; i",[65,1559,1560],{"class":71},"++",[65,1562,1563],{"class":79},")\n",[65,1565,1566],{"class":67,"line":170},[65,1567,1568],{"class":79},"    {\n",[65,1570,1571],{"class":67,"line":192},[65,1572,1573],{"class":93},"        \u002F\u002F利用指针遍历数组\n",[65,1575,1576,1579,1581,1583,1585,1587],{"class":67,"line":209},[65,1577,1578],{"class":79},"        cout ",[65,1580,176],{"class":71},[65,1582,136],{"class":71},[65,1584,242],{"class":79},[65,1586,176],{"class":71},[65,1588,247],{"class":79},[65,1590,1591,1594,1596],{"class":67,"line":214},[65,1592,1593],{"class":79},"        p",[65,1595,1560],{"class":71},[65,1597,269],{"class":79},[65,1599,1600],{"class":67,"line":220},[65,1601,1602],{"class":79},"    }\n",[65,1604,1605],{"class":67,"line":226},[65,1606,87],{"emptyLinePlaceholder":86},[65,1608,1609],{"class":67,"line":250},[65,1610,87],{"emptyLinePlaceholder":86},[65,1612,1613,1615,1617],{"class":67,"line":255},[65,1614,263],{"class":71},[65,1616,266],{"class":109},[65,1618,269],{"class":79},[65,1620,1621],{"class":67,"line":260},[65,1622,275],{"class":79},[18,1624,1625],{},[21,1626,683],{},[56,1628,1631],{"className":1629,"code":1630,"language":290,"meta":61},[288],"第一个元素： 1\n指针访问第一个元素： 1\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n",[47,1632,1630],{"__ignoreMap":61},[13,1634,1636],{"id":1635},"pointers-and-functions","Pointers and functions",[18,1638,1639,1641],{},[21,1640,581],{}," Using pointers as function parameters allows modification of the actual parameters' values.",[18,1643,1644],{},[21,1645,54],{},[56,1647,1649],{"className":58,"code":1648,"language":60,"meta":61,"style":61},"\u002F\u002F值传递\nvoid swap1(int a ,int b)\n{\n    int temp = a;\n    a = b; \n    b = temp;\n}\n\u002F\u002F地址传递\nvoid swap2(int * p1, int *p2)\n{\n    int temp = *p1;\n    *p1 = *p2;\n    *p2 = temp;\n}\n\nint main() {\n\n    int a = 10;\n    int b = 20;\n    swap1(a, b); \u002F\u002F 值传递不会改变实参\n\n    swap2(&a, &b); \u002F\u002F地址传递会改变实参\n\n    cout \u003C\u003C \"a = \" \u003C\u003C a \u003C\u003C endl;\n\n    cout \u003C\u003C \"b = \" \u003C\u003C b \u003C\u003C endl;\n\n\n    return 0;\n}\n",[47,1650,1651,1656,1682,1687,1699,1709,1719,1723,1728,1756,1760,1773,1787,1797,1801,1805,1813,1817,1829,1842,1853,1857,1878,1882,1899,1904,1922,1927,1932,1941],{"__ignoreMap":61},[65,1652,1653],{"class":67,"line":68},[65,1654,1655],{"class":93},"\u002F\u002F值传递\n",[65,1657,1658,1661,1664,1666,1668,1672,1675,1677,1680],{"class":67,"line":83},[65,1659,1660],{"class":71},"void",[65,1662,1663],{"class":75}," swap1",[65,1665,476],{"class":79},[65,1667,72],{"class":71},[65,1669,1671],{"class":1670},"s4XuR"," a",[65,1673,1674],{"class":79}," ,",[65,1676,72],{"class":71},[65,1678,1679],{"class":1670}," b",[65,1681,1563],{"class":79},[65,1683,1684],{"class":67,"line":90},[65,1685,1686],{"class":79},"{\n",[65,1688,1689,1691,1694,1696],{"class":67,"line":97},[65,1690,100],{"class":71},[65,1692,1693],{"class":79}," temp ",[65,1695,106],{"class":71},[65,1697,1698],{"class":79}," a;\n",[65,1700,1701,1704,1706],{"class":67,"line":119},[65,1702,1703],{"class":79},"    a ",[65,1705,106],{"class":71},[65,1707,1708],{"class":79}," b; \n",[65,1710,1711,1714,1716],{"class":67,"line":125},[65,1712,1713],{"class":79},"    b ",[65,1715,106],{"class":71},[65,1717,1718],{"class":79}," temp;\n",[65,1720,1721],{"class":67,"line":131},[65,1722,275],{"class":79},[65,1724,1725],{"class":67,"line":142},[65,1726,1727],{"class":93},"\u002F\u002F地址传递\n",[65,1729,1730,1732,1735,1737,1739,1741,1744,1747,1749,1751,1754],{"class":67,"line":147},[65,1731,1660],{"class":71},[65,1733,1734],{"class":75}," swap2",[65,1736,476],{"class":79},[65,1738,72],{"class":71},[65,1740,136],{"class":71},[65,1742,1743],{"class":1670}," p1",[65,1745,1746],{"class":79},", ",[65,1748,72],{"class":71},[65,1750,136],{"class":71},[65,1752,1753],{"class":1670},"p2",[65,1755,1563],{"class":79},[65,1757,1758],{"class":67,"line":153},[65,1759,1686],{"class":79},[65,1761,1762,1764,1766,1768,1770],{"class":67,"line":170},[65,1763,100],{"class":71},[65,1765,1693],{"class":79},[65,1767,106],{"class":71},[65,1769,136],{"class":71},[65,1771,1772],{"class":79},"p1;\n",[65,1774,1775,1777,1780,1782,1784],{"class":67,"line":192},[65,1776,1277],{"class":71},[65,1778,1779],{"class":79},"p1 ",[65,1781,106],{"class":71},[65,1783,136],{"class":71},[65,1785,1786],{"class":79},"p2;\n",[65,1788,1789,1791,1793,1795],{"class":67,"line":209},[65,1790,1277],{"class":71},[65,1792,1280],{"class":79},[65,1794,106],{"class":71},[65,1796,1718],{"class":79},[65,1798,1799],{"class":67,"line":214},[65,1800,275],{"class":79},[65,1802,1803],{"class":67,"line":220},[65,1804,87],{"emptyLinePlaceholder":86},[65,1806,1807,1809,1811],{"class":67,"line":226},[65,1808,72],{"class":71},[65,1810,76],{"class":75},[65,1812,80],{"class":79},[65,1814,1815],{"class":67,"line":250},[65,1816,87],{"emptyLinePlaceholder":86},[65,1818,1819,1821,1823,1825,1827],{"class":67,"line":255},[65,1820,100],{"class":71},[65,1822,103],{"class":79},[65,1824,106],{"class":71},[65,1826,110],{"class":109},[65,1828,269],{"class":79},[65,1830,1831,1833,1835,1837,1840],{"class":67,"line":260},[65,1832,100],{"class":71},[65,1834,1178],{"class":79},[65,1836,106],{"class":71},[65,1838,1839],{"class":109}," 20",[65,1841,269],{"class":79},[65,1843,1844,1847,1850],{"class":67,"line":272},[65,1845,1846],{"class":75},"    swap1",[65,1848,1849],{"class":79},"(a, b);",[65,1851,1852],{"class":93}," \u002F\u002F 值传递不会改变实参\n",[65,1854,1855],{"class":67,"line":1334},[65,1856,87],{"emptyLinePlaceholder":86},[65,1858,1859,1862,1864,1867,1870,1872,1875],{"class":67,"line":1339},[65,1860,1861],{"class":75},"    swap2",[65,1863,476],{"class":79},[65,1865,1866],{"class":71},"&",[65,1868,1869],{"class":79},"a, ",[65,1871,1866],{"class":71},[65,1873,1874],{"class":79},"b);",[65,1876,1877],{"class":93}," \u002F\u002F地址传递会改变实参\n",[65,1879,1880],{"class":67,"line":1344},[65,1881,87],{"emptyLinePlaceholder":86},[65,1883,1884,1886,1888,1891,1893,1895,1897],{"class":67,"line":1353},[65,1885,173],{"class":79},[65,1887,176],{"class":71},[65,1889,1890],{"class":233}," \"a = \"",[65,1892,237],{"class":71},[65,1894,103],{"class":79},[65,1896,176],{"class":71},[65,1898,247],{"class":79},[65,1900,1902],{"class":67,"line":1901},25,[65,1903,87],{"emptyLinePlaceholder":86},[65,1905,1907,1909,1911,1914,1916,1918,1920],{"class":67,"line":1906},26,[65,1908,173],{"class":79},[65,1910,176],{"class":71},[65,1912,1913],{"class":233}," \"b = \"",[65,1915,237],{"class":71},[65,1917,1178],{"class":79},[65,1919,176],{"class":71},[65,1921,247],{"class":79},[65,1923,1925],{"class":67,"line":1924},27,[65,1926,87],{"emptyLinePlaceholder":86},[65,1928,1930],{"class":67,"line":1929},28,[65,1931,87],{"emptyLinePlaceholder":86},[65,1933,1935,1937,1939],{"class":67,"line":1934},29,[65,1936,263],{"class":71},[65,1938,266],{"class":109},[65,1940,269],{"class":79},[65,1942,1944],{"class":67,"line":1943},30,[65,1945,275],{"class":79},[18,1947,1948],{},[21,1949,683],{},[56,1951,1954],{"className":1952,"code":1953,"language":290,"meta":61},[288],"a = 20\nb = 10\n",[47,1955,1953],{"__ignoreMap":61},[305,1957,1958],{},[18,1959,1960],{},"Summary: If you don't want to modify the actual parameter, use value passing; if you want to modify the actual parameter, use pass-by-reference.",[13,1962,1964],{"id":1963},"pointers-arrays-functions","pointers, arrays, functions",[18,1966,1967,1970],{},[21,1968,1969],{},"Case Study:"," Encapsulate a function that uses bubble sort to sort an integer array in ascending order.",[18,1972,1973,1974,1976],{},"For example, the array: int arr",[65,1975,1456],{}," = { 4,3,6,9,1,2,10,8,7,5 };",[18,1978,1979],{},[21,1980,54],{},[56,1982,1984],{"className":58,"code":1983,"language":60,"meta":61,"style":61},"\u002F\u002F冒泡排序函数\nvoid bubbleSort(int * arr, int len)  \u002F\u002Fint * arr 也可以写为int arr[]\n{\n    for (int i = 0; i \u003C len - 1; i++)\n    {\n        for (int j = 0; j \u003C len - 1 - i; j++)\n        {\n            if (arr[j] > arr[j + 1])\n            {\n                int temp = arr[j];\n                arr[j] = arr[j + 1];\n                arr[j + 1] = temp;\n            }\n        }\n    }\n}\n\n\u002F\u002F打印数组函数\nvoid printArray(int arr[], int len)\n{\n    for (int i = 0; i \u003C len; i++)\n    {\n        cout \u003C\u003C arr[i] \u003C\u003C endl;\n    }\n}\n\nint main() {\n\n    int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };\n    int len = sizeof(arr) \u002F sizeof(int);\n\n    bubbleSort(arr, len);\n\n    printArray(arr, len);\n\n\n    return 0;\n}\n",[47,1985,1986,1991,2019,2023,2056,2060,2097,2102,2124,2129,2141,2157,2172,2177,2182,2186,2190,2194,2199,2221,2225,2250,2254,2267,2271,2275,2279,2287,2291,2345,2370,2375,2384,2389,2397,2402,2407,2416],{"__ignoreMap":61},[65,1987,1988],{"class":67,"line":68},[65,1989,1990],{"class":93},"\u002F\u002F冒泡排序函数\n",[65,1992,1993,1995,1998,2000,2002,2004,2007,2009,2011,2014,2016],{"class":67,"line":83},[65,1994,1660],{"class":71},[65,1996,1997],{"class":75}," bubbleSort",[65,1999,476],{"class":79},[65,2001,72],{"class":71},[65,2003,136],{"class":71},[65,2005,2006],{"class":1670}," arr",[65,2008,1746],{"class":79},[65,2010,72],{"class":71},[65,2012,2013],{"class":1670}," len",[65,2015,741],{"class":79},[65,2017,2018],{"class":93},"  \u002F\u002Fint * arr 也可以写为int arr[]\n",[65,2020,2021],{"class":67,"line":90},[65,2022,1686],{"class":79},[65,2024,2025,2027,2029,2031,2033,2035,2037,2039,2041,2044,2047,2050,2052,2054],{"class":67,"line":97},[65,2026,1535],{"class":71},[65,2028,734],{"class":79},[65,2030,72],{"class":71},[65,2032,1542],{"class":79},[65,2034,106],{"class":71},[65,2036,266],{"class":109},[65,2038,1549],{"class":79},[65,2040,1552],{"class":71},[65,2042,2043],{"class":79}," len ",[65,2045,2046],{"class":71},"-",[65,2048,2049],{"class":109}," 1",[65,2051,1557],{"class":79},[65,2053,1560],{"class":71},[65,2055,1563],{"class":79},[65,2057,2058],{"class":67,"line":119},[65,2059,1568],{"class":79},[65,2061,2062,2065,2067,2069,2072,2074,2076,2079,2081,2083,2085,2087,2090,2093,2095],{"class":67,"line":125},[65,2063,2064],{"class":71},"        for",[65,2066,734],{"class":79},[65,2068,72],{"class":71},[65,2070,2071],{"class":79}," j ",[65,2073,106],{"class":71},[65,2075,266],{"class":109},[65,2077,2078],{"class":79},"; j ",[65,2080,1552],{"class":71},[65,2082,2043],{"class":79},[65,2084,2046],{"class":71},[65,2086,2049],{"class":109},[65,2088,2089],{"class":71}," -",[65,2091,2092],{"class":79}," i; j",[65,2094,1560],{"class":71},[65,2096,1563],{"class":79},[65,2098,2099],{"class":67,"line":131},[65,2100,2101],{"class":79},"        {\n",[65,2103,2104,2107,2110,2113,2116,2119,2121],{"class":67,"line":142},[65,2105,2106],{"class":71},"            if",[65,2108,2109],{"class":79}," (arr[j] ",[65,2111,2112],{"class":71},">",[65,2114,2115],{"class":79}," arr[j ",[65,2117,2118],{"class":71},"+",[65,2120,2049],{"class":109},[65,2122,2123],{"class":79},"])\n",[65,2125,2126],{"class":67,"line":147},[65,2127,2128],{"class":79},"            {\n",[65,2130,2131,2134,2136,2138],{"class":67,"line":153},[65,2132,2133],{"class":71},"                int",[65,2135,1693],{"class":79},[65,2137,106],{"class":71},[65,2139,2140],{"class":79}," arr[j];\n",[65,2142,2143,2146,2148,2150,2152,2154],{"class":67,"line":170},[65,2144,2145],{"class":79},"                arr[j] ",[65,2147,106],{"class":71},[65,2149,2115],{"class":79},[65,2151,2118],{"class":71},[65,2153,2049],{"class":109},[65,2155,2156],{"class":79},"];\n",[65,2158,2159,2162,2164,2166,2168,2170],{"class":67,"line":192},[65,2160,2161],{"class":79},"                arr[j ",[65,2163,2118],{"class":71},[65,2165,2049],{"class":109},[65,2167,1503],{"class":79},[65,2169,106],{"class":71},[65,2171,1718],{"class":79},[65,2173,2174],{"class":67,"line":209},[65,2175,2176],{"class":79},"            }\n",[65,2178,2179],{"class":67,"line":214},[65,2180,2181],{"class":79},"        }\n",[65,2183,2184],{"class":67,"line":220},[65,2185,1602],{"class":79},[65,2187,2188],{"class":67,"line":226},[65,2189,275],{"class":79},[65,2191,2192],{"class":67,"line":250},[65,2193,87],{"emptyLinePlaceholder":86},[65,2195,2196],{"class":67,"line":255},[65,2197,2198],{"class":93},"\u002F\u002F打印数组函数\n",[65,2200,2201,2203,2206,2208,2210,2212,2215,2217,2219],{"class":67,"line":260},[65,2202,1660],{"class":71},[65,2204,2205],{"class":75}," printArray",[65,2207,476],{"class":79},[65,2209,72],{"class":71},[65,2211,2006],{"class":1670},[65,2213,2214],{"class":79},"[], ",[65,2216,72],{"class":71},[65,2218,2013],{"class":1670},[65,2220,1563],{"class":79},[65,2222,2223],{"class":67,"line":272},[65,2224,1686],{"class":79},[65,2226,2227,2229,2231,2233,2235,2237,2239,2241,2243,2246,2248],{"class":67,"line":1334},[65,2228,1535],{"class":71},[65,2230,734],{"class":79},[65,2232,72],{"class":71},[65,2234,1542],{"class":79},[65,2236,106],{"class":71},[65,2238,266],{"class":109},[65,2240,1549],{"class":79},[65,2242,1552],{"class":71},[65,2244,2245],{"class":79}," len; i",[65,2247,1560],{"class":71},[65,2249,1563],{"class":79},[65,2251,2252],{"class":67,"line":1339},[65,2253,1568],{"class":79},[65,2255,2256,2258,2260,2263,2265],{"class":67,"line":1344},[65,2257,1578],{"class":79},[65,2259,176],{"class":71},[65,2261,2262],{"class":79}," arr[i] ",[65,2264,176],{"class":71},[65,2266,247],{"class":79},[65,2268,2269],{"class":67,"line":1353},[65,2270,1602],{"class":79},[65,2272,2273],{"class":67,"line":1901},[65,2274,275],{"class":79},[65,2276,2277],{"class":67,"line":1906},[65,2278,87],{"emptyLinePlaceholder":86},[65,2280,2281,2283,2285],{"class":67,"line":1924},[65,2282,72],{"class":71},[65,2284,76],{"class":75},[65,2286,80],{"class":79},[65,2288,2289],{"class":67,"line":1929},[65,2290,87],{"emptyLinePlaceholder":86},[65,2292,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343],{"class":67,"line":1934},[65,2294,100],{"class":71},[65,2296,1497],{"class":79},[65,2298,1456],{"class":109},[65,2300,1503],{"class":79},[65,2302,106],{"class":71},[65,2304,1407],{"class":79},[65,2306,1426],{"class":109},[65,2308,1413],{"class":79},[65,2310,1421],{"class":109},[65,2312,1413],{"class":79},[65,2314,1436],{"class":109},[65,2316,1413],{"class":79},[65,2318,1451],{"class":109},[65,2320,1413],{"class":79},[65,2322,1410],{"class":109},[65,2324,1413],{"class":79},[65,2326,1416],{"class":109},[65,2328,1413],{"class":79},[65,2330,1456],{"class":109},[65,2332,1413],{"class":79},[65,2334,1446],{"class":109},[65,2336,1413],{"class":79},[65,2338,1441],{"class":109},[65,2340,1413],{"class":79},[65,2342,1431],{"class":109},[65,2344,1459],{"class":79},[65,2346,2347,2349,2351,2353,2355,2358,2361,2363,2365,2367],{"class":67,"line":1943},[65,2348,100],{"class":71},[65,2350,2043],{"class":79},[65,2352,106],{"class":71},[65,2354,458],{"class":71},[65,2356,2357],{"class":79},"(arr) ",[65,2359,2360],{"class":71},"\u002F",[65,2362,458],{"class":71},[65,2364,476],{"class":79},[65,2366,72],{"class":71},[65,2368,2369],{"class":79},");\n",[65,2371,2373],{"class":67,"line":2372},31,[65,2374,87],{"emptyLinePlaceholder":86},[65,2376,2378,2381],{"class":67,"line":2377},32,[65,2379,2380],{"class":75},"    bubbleSort",[65,2382,2383],{"class":79},"(arr, len);\n",[65,2385,2387],{"class":67,"line":2386},33,[65,2388,87],{"emptyLinePlaceholder":86},[65,2390,2392,2395],{"class":67,"line":2391},34,[65,2393,2394],{"class":75},"    printArray",[65,2396,2383],{"class":79},[65,2398,2400],{"class":67,"line":2399},35,[65,2401,87],{"emptyLinePlaceholder":86},[65,2403,2405],{"class":67,"line":2404},36,[65,2406,87],{"emptyLinePlaceholder":86},[65,2408,2410,2412,2414],{"class":67,"line":2409},37,[65,2411,263],{"class":71},[65,2413,266],{"class":109},[65,2415,269],{"class":79},[65,2417,2419],{"class":67,"line":2418},38,[65,2420,275],{"class":79},[18,2422,2423],{},[21,2424,555],{},[56,2426,2429],{"className":2427,"code":2428,"language":290,"meta":61},[288],"1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n",[47,2430,2428],{"__ignoreMap":61},[305,2432,2433],{},[18,2434,2435],{},"Summary: When an array name is passed as an argument to a function, it degenerates into a pointer to the first element.",[2437,2438,2439],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":61,"searchDepth":83,"depth":83,"links":2441},[2442],{"id":5,"depth":83,"text":5,"children":2443},[2444,2445,2446,2447,2448,2449,2450,2451],{"id":15,"depth":90,"text":16},{"id":41,"depth":90,"text":42},{"id":322,"depth":90,"text":323},{"id":569,"depth":90,"text":570},{"id":806,"depth":90,"text":807},{"id":1368,"depth":90,"text":1369},{"id":1635,"depth":90,"text":1636},{"id":1963,"depth":90,"text":1964},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen",0,"0900","2023-10-05","wiki\u002F2023-10-05-cplusplus-jiao-xue","en-us:2023-10-05-cplusplus-jiao-xue","\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Cplusplus教学","md","wiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针",false,null,"en-US","en-us",{},{"title":5,"description":61},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0900-指针","QdleQE5ODfz58daMLRVL_3iSaq40-2KB5ZCt4TYCV3c",[2472,2477,2482,2487,2492,2497,2502,2507,2512,2513,2518,2522,2527,2532,2537,2542,2547,2552,2557,2562,2567,2572,2577,2582,2587,2592,2597,2602,2607,2612,2617,2622,2627,2632,2637,2642,2647,2652,2657,2662,2667,2672,2677,2682,2687,2692,2697,2702,2707,2712,2717,2722,2727,2732,2737,2742,2747,2752,2757,2762,2767,2772,2777,2782,2787,2792,2797,2802,2807,2812,2817,2822,2827,2832,2837,2842,2847,2852,2857,2862,2867,2872],{"path":2473,"stem":2474,"title":2475,"date":2455,"chapterOrder":2476,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0100-c-kai-fa-huan-jing-da-jian-yu-ce-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0100-C++开发环境搭建与测试","C++ Development Environment Setup and Testing","0100",{"path":2478,"stem":2479,"title":2480,"date":2455,"chapterOrder":2481,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0200-c-ji-chu-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0200-C++基础初识","C++ Basics","0200",{"path":2483,"stem":2484,"title":2485,"date":2455,"chapterOrder":2486,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0300-shu-ju-lei-xing-yu-shu-ju-cun-fang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0300-数据类型与数据存放","Data Types and Data Storage","0300",{"path":2488,"stem":2489,"title":2490,"date":2455,"chapterOrder":2491,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0400-shu-ru-shu-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0400-输入输出","Input and Output","0400",{"path":2493,"stem":2494,"title":2495,"date":2455,"chapterOrder":2496,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0500-yun-suan-fu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0500-运算符","operator","0500",{"path":2498,"stem":2499,"title":2500,"date":2455,"chapterOrder":2501,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0600-cheng-xu-liu-cheng-jie-gou","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0600-程序流程结构","program flow structure","0600",{"path":2503,"stem":2504,"title":2505,"date":2455,"chapterOrder":2506,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0700-shu-zu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0700-数组","array","0700",{"path":2508,"stem":2509,"title":2510,"date":2455,"chapterOrder":2511,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0800-han-shu-yu-tou-wen-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F0800-函数与头文件","Functions and Header Files","0800",{"path":2452,"stem":2469,"title":5,"date":2455,"chapterOrder":2454,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},{"path":2514,"stem":2515,"title":2516,"date":2455,"chapterOrder":2517,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1000-jie-gou-ti-yu-gong-yong-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1000-结构体与共用体","Structures and Unions","1000",{"path":2519,"stem":2520,"title":2521,"date":2455,"chapterOrder":747,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1100-nei-cun-fen-qu-yu-sheng-ming-zhou-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1100-内存分区与生命周期","Memory Partitioning and Lifecycle",{"path":2523,"stem":2524,"title":2525,"date":2455,"chapterOrder":2526,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1200-yin-yong","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1200-引用","reference","1200",{"path":2528,"stem":2529,"title":2530,"date":2455,"chapterOrder":2531,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1300-han-shu-ti-gao-yu-ming-ming-kong-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1300-函数提高与命名空间","Advanced Functions and Namespaces","1300",{"path":2533,"stem":2534,"title":2535,"date":2455,"chapterOrder":2536,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0100-feng-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0100-封装","encapsulation","1400-0100",{"path":2538,"stem":2539,"title":2540,"date":2455,"chapterOrder":2541,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0200-dui-xiang-chu-shi-hua-he-qing-li","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0200-对象初始化和清理","Object initialization and cleanup","1400-0200",{"path":2543,"stem":2544,"title":2545,"date":2455,"chapterOrder":2546,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0300-dui-xiang-mo-xing-yu-this-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0300-对象模型与this指针","Object Model and the `this` Pointer","1400-0300",{"path":2548,"stem":2549,"title":2550,"date":2455,"chapterOrder":2551,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0400-you-yuan-yu-yun-suan-fu-zhong-zai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0400-友元与运算符重载","Friends and operator overloading","1400-0400",{"path":2553,"stem":2554,"title":2555,"date":2455,"chapterOrder":2556,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0500-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0500-继承","inheritance","1400-0500",{"path":2558,"stem":2559,"title":2560,"date":2455,"chapterOrder":2561,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-0600-duo-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-0600-多态","polymorphism","1400-0600",{"path":2563,"stem":2564,"title":2565,"date":2455,"chapterOrder":2566,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1400-lei-he-dui-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1400-类和对象","Classes and Objects","1400",{"path":2568,"stem":2569,"title":2570,"date":2455,"chapterOrder":2571,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1500-wen-jian-cao-zuo","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1500-文件操作","File operations","1500",{"path":2573,"stem":2574,"title":2575,"date":2455,"chapterOrder":2576,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1600-yi-chang-chu-li-yu-cuo-wu-ma","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1600-异常处理与错误码","异常处理","1600",{"path":2578,"stem":2579,"title":2580,"date":2455,"chapterOrder":2581,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1700-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1700-模板","template","1700",{"path":2583,"stem":2584,"title":2585,"date":2455,"chapterOrder":2586,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0100-stl-chu-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0100-STL初识","Introduction to STL","1800-0100",{"path":2588,"stem":2589,"title":2590,"date":2455,"chapterOrder":2591,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0200-std-array","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0200-std-array","std::array","1800-0200",{"path":2593,"stem":2594,"title":2595,"date":2455,"chapterOrder":2596,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0300-string-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0300-string容器","string container","1800-0300",{"path":2598,"stem":2599,"title":2600,"date":2455,"chapterOrder":2601,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0400-vector-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0400-vector容器","vector 容器","1800-0400",{"path":2603,"stem":2604,"title":2605,"date":2455,"chapterOrder":2606,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0500-deque-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0500-deque容器","deque 容器","1800-0500",{"path":2608,"stem":2609,"title":2610,"date":2455,"chapterOrder":2611,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0600-stack-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0600-stack容器","stack 容器","1800-0600",{"path":2613,"stem":2614,"title":2615,"date":2455,"chapterOrder":2616,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0700-queue-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0700-queue容器","queue container","1800-0700",{"path":2618,"stem":2619,"title":2620,"date":2455,"chapterOrder":2621,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0800-list-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0800-list容器","list 容器","1800-0800",{"path":2623,"stem":2624,"title":2625,"date":2455,"chapterOrder":2626,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-0900-set-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-0900-set容器","set \u002F multiset 容器","1800-0900",{"path":2628,"stem":2629,"title":2630,"date":2455,"chapterOrder":2631,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1000-map-rong-qi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1000-map容器","map \u002F multimap 容器","1800-1000",{"path":2633,"stem":2634,"title":2635,"date":2455,"chapterOrder":2636,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1100-han-shu-dui-xiang-yu-wei-ci","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1100-函数对象与谓词","Function objects and predicates","1800-1100",{"path":2638,"stem":2639,"title":2640,"date":2455,"chapterOrder":2641,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-1200-chang-yong-suan-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-1200-常用算法","Common algorithms","1800-1200",{"path":2643,"stem":2644,"title":2645,"date":2455,"chapterOrder":2646,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1800-stl-ti-gao-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1800-STL提高编程","Level up your programming with STL.","1800",{"path":2648,"stem":2649,"title":2650,"date":2455,"chapterOrder":2651,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F1900-c-lei-xing-zhuan-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F1900-C++类型转换","C++ Type Casting","1900",{"path":2653,"stem":2654,"title":2655,"date":2455,"chapterOrder":2656,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0100-auto","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0100-auto","auto","2000-0100",{"path":2658,"stem":2659,"title":2660,"date":2455,"chapterOrder":2661,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0200-nullptr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0200-nullptr","nullptr","2000-0200",{"path":2663,"stem":2664,"title":2665,"date":2455,"chapterOrder":2666,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0300-using","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0300-using","using","2000-0300",{"path":2668,"stem":2669,"title":2670,"date":2455,"chapterOrder":2671,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0400-enum-class","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0400-enum-class","enum class","2000-0400",{"path":2673,"stem":2674,"title":2675,"date":2455,"chapterOrder":2676,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0500-fan-wei-for-xun-huan","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0500-范围for循环","range-based for loop","2000-0500",{"path":2678,"stem":2679,"title":2680,"date":2455,"chapterOrder":2681,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0600-jie-gou-hua-bang-ding","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0600-结构化绑定","structured binding","2000-0600",{"path":2683,"stem":2684,"title":2685,"date":2455,"chapterOrder":2686,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0700-constexpr","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0700-constexpr","constexpr","2000-0700",{"path":2688,"stem":2689,"title":2690,"date":2455,"chapterOrder":2691,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0800-raii","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0800-RAII","RAII","2000-0800",{"path":2693,"stem":2694,"title":2695,"date":2455,"chapterOrder":2696,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-0900-zhi-neng-zhi-zhen","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-0900-智能指针","Smart pointer","2000-0900",{"path":2698,"stem":2699,"title":2700,"date":2455,"chapterOrder":2701,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1000-you-zhi-yin-yong-he-yi-dong-yu-yi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1000-右值引用和移动语义","Rvalue references and move semantics","2000-1000",{"path":2703,"stem":2704,"title":2705,"date":2455,"chapterOrder":2706,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1100-lambda-biao-da-shi","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1100-Lambda表达式","Lambda expression","2000-1100",{"path":2708,"stem":2709,"title":2710,"date":2455,"chapterOrder":2711,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1200-std-function","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1200-std-function","std::function","2000-1200",{"path":2713,"stem":2714,"title":2715,"date":2455,"chapterOrder":2716,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1300-std-bind","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1300-std-bind","std::bind","2000-1300",{"path":2718,"stem":2719,"title":2720,"date":2455,"chapterOrder":2721,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1400-std-optional","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1400-std-optional","std::optional","2000-1400",{"path":2723,"stem":2724,"title":2725,"date":2455,"chapterOrder":2726,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1500-std-variant","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1500-std-variant","std::variant","2000-1500",{"path":2728,"stem":2729,"title":2730,"date":2455,"chapterOrder":2731,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1600-std-span","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1600-std-span","std::span","2000-1600",{"path":2733,"stem":2734,"title":2735,"date":2455,"chapterOrder":2736,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1700-std-format-print","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1700-std-format-print","std::format \u002F std::print","2000-1700",{"path":2738,"stem":2739,"title":2740,"date":2455,"chapterOrder":2741,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1800-std-chrono","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1800-std-chrono","std::chrono","2000-1800",{"path":2743,"stem":2744,"title":2745,"date":2455,"chapterOrder":2746,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0100-std-thread","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0100-std-thread","std::thread and join","2000-1900-0100",{"path":2748,"stem":2749,"title":2750,"date":2455,"chapterOrder":2751,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0200-mutex-lock-guard","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0200-mutex-lock-guard","mutex 与 lock_guard","2000-1900-0200",{"path":2753,"stem":2754,"title":2755,"date":2455,"chapterOrder":2756,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0300-std-atomic","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0300-std-atomic","std::atomic","2000-1900-0300",{"path":2758,"stem":2759,"title":2760,"date":2455,"chapterOrder":2761,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-0400-condition-variable","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-0400-condition-variable","condition_variable","2000-1900-0400",{"path":2763,"stem":2764,"title":2765,"date":2455,"chapterOrder":2766,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-1900-bing-fa-bian-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-1900-并发编程","Concurrent programming","2000-1900",{"path":2768,"stem":2769,"title":2770,"date":2455,"chapterOrder":2771,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2000-std-filesystem","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2000-std-filesystem","std::filesystem","2000-2000",{"path":2773,"stem":2774,"title":2775,"date":2455,"chapterOrder":2776,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-2100-modules-jian-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-2100-modules简介","Modules Introduction","2000-2100",{"path":2778,"stem":2779,"title":2780,"date":2455,"chapterOrder":2781,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2000-xian-dai-c","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2000-现代C++","Modern C++","2000",{"path":2783,"stem":2784,"title":2785,"date":2455,"chapterOrder":2786,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0100-ding-shi-qi-yu-yi-bu-io","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0100-定时器与异步IO","Timers and Asynchronous I\u002FO","2100-0100-0100",{"path":2788,"stem":2789,"title":2790,"date":2455,"chapterOrder":2791,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0200-boost-asio-ji-chu","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0200-Boost.Asio基础","Boost.Asio Basics","2100-0100-0200",{"path":2793,"stem":2794,"title":2795,"date":2455,"chapterOrder":2796,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0300-chuan-kou-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0300-串口通信","serial communication","2100-0100-0300",{"path":2798,"stem":2799,"title":2800,"date":2455,"chapterOrder":2801,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0400-tcp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0400-TCP通信","TCP communication","2100-0100-0400",{"path":2803,"stem":2804,"title":2805,"date":2455,"chapterOrder":2806,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0500-udp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0500-UDP通信","UDP communication","2100-0100-0500",{"path":2808,"stem":2809,"title":2810,"date":2455,"chapterOrder":2811,"chapterDepth":83,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-0600-ji-qi-ren-gong-cheng-xie-fa-yu-ros2-ji-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-0600-机器人工程写法与ROS2集成","Robot Engineering Approach and ROS2 Integration","2100-0100-0600",{"path":2813,"stem":2814,"title":2815,"date":2455,"chapterOrder":2816,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0100-boost-asio-yi-bu-io-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0100-Boost.Asio异步IO库","Boost.Asio asynchronous IO library","2100-0100",{"path":2818,"stem":2819,"title":2820,"date":2455,"chapterOrder":2821,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0200-eigen-xian-xing-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0200-Eigen线性代数库","Eigen linear algebra library","2100-0200",{"path":2823,"stem":2824,"title":2825,"date":2455,"chapterOrder":2826,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0300-opencv-ji-suan-ji-shi-jue-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0300-OpenCV计算机视觉库","OpenCV Computer Vision Library","2100-0300",{"path":2828,"stem":2829,"title":2830,"date":2455,"chapterOrder":2831,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0400-pcl-dian-yun-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0400-PCL点云库","PCL Point Cloud Library","2100-0400",{"path":2833,"stem":2834,"title":2835,"date":2455,"chapterOrder":2836,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-0500-sophus-li-qun-li-dai-shu-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-0500-Sophus李群李代数库","Sophus Lie group and Lie algebra library","2100-0500",{"path":2838,"stem":2839,"title":2840,"date":2455,"chapterOrder":2841,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2100-chang-yong-ku","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2100-常用库","Learning Common Libraries","2100",{"path":2843,"stem":2844,"title":2845,"date":2455,"chapterOrder":2846,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0100-cmakepresets-yu-gou-jian-an-zhuang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0100-CMakePresets与构建安装","CMakePresets and Build Installation","2200-0100",{"path":2848,"stem":2849,"title":2850,"date":2455,"chapterOrder":2851,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0200-ding-ceng-cmake-yu-gong-gong-bian-yi-xuan-xiang","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0200-顶层CMake与公共编译选项","Top-level CMake and Public Compilation Options","2200-0200",{"path":2853,"stem":2854,"title":2855,"date":2455,"chapterOrder":2856,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0300-src-yu-lib-mo-kuai-cmake-xiang-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0300-src与lib模块CMake详解","Detailed CMake Explanation for src and lib Modules","2200-0300",{"path":2858,"stem":2859,"title":2860,"date":2455,"chapterOrder":2861,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0400-di-san-fang-ku-yi-lai-xie-fa","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0400-第三方库依赖写法","How to write third-party library dependencies","2200-0400",{"path":2863,"stem":2864,"title":2865,"date":2455,"chapterOrder":2866,"chapterDepth":68,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-0500-mu-ban-kuo-zhan-yu-chang-jian-wen-ti","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-0500-模板扩展与常见问题","Template Extensions and FAQ","2200-0500",{"path":2868,"stem":2869,"title":2870,"date":2455,"chapterOrder":2871,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":2462},"\u002Fen-us\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F2200-cmake-gong-cheng-mu-ban","_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002F2200-CMake工程模板","CMake Project Template","2200",{"path":2458,"stem":2873,"title":2874,"date":2455,"chapterOrder":2463,"chapterDepth":2453,"docKey":2457,"docRoot":2458,"docTitle":2459,"isWikiDoc":86,"isWikiIndex":86},"_i18n\u002Fen-us\u002Fwiki\u002F2023-10-05-Cplusplus教学\u002Findex","C\u002FC++ tutorial",{"variants":2876},[2877,2878,2881,2884,2887],{"path":2452,"localeSlug":2465,"i18nKey":2461},{"path":2879,"localeSlug":2880,"i18nKey":2461},"\u002Fzh-hant\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","zh-hant",{"path":2882,"localeSlug":2883,"i18nKey":2461},"\u002Fzh-hk\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","zh-hk",{"path":2885,"localeSlug":2886,"i18nKey":2461},"\u002Fzh-tw\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","zh-tw",{"path":2888,"localeSlug":2889,"i18nKey":2461},"\u002Fzh-cn\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue\u002F0900-zhi-zhen","zh-cn",[2452,2468,2879,2468,2882,2468,2885,2468,2888,2468],1784646862115]