{"id":480,"date":"2025-10-16T21:13:52","date_gmt":"2025-10-16T21:13:52","guid":{"rendered":"https:\/\/support.nullflag.com\/?post_type=docs&#038;p=480"},"modified":"2025-11-03T19:40:34","modified_gmt":"2025-11-03T19:40:34","password":"","slug":"c-language-fundamentals","status":"publish","type":"docs","link":"https:\/\/www.nullflag.com\/support\/kb\/cpp_c_java_arm64_javascript\/c_basic\/c-language-fundamentals\/","title":{"rendered":"C Language Fundamentals"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Course Objective<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Why Learn C Language?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">From Reverse Engineering Perspective<\/h3>\n\n\n\n<p>In Android application security analysis, we encounter different implementation approaches:<\/p>\n\n\n\n<p>&#8220;We don&#8217;t approach this from a development perspective, but rather from a reverse engineering perspective. As long as we can understand and analyze, that&#8217;s sufficient. Different goals lead to different levels of learning difficulty.<\/p>\n\n\n\n<p>Why learn C language for app reverse engineering?<\/p>\n\n\n\n<p>Because most app algorithms are developed at the Java layer, which is relatively easy to implement. To prevent algorithms from being found through Java decompilation and to discover the specific encryption process, developers must increase the difficulty of cracking, so they use C language for development.<\/p>\n\n\n\n<p>When encountering APKs, use JADX for decompilation, When encountering SO dynamic libraries, use IDA for decompilation.<\/p>\n\n\n\n<p>Finally, use hooking methods to pass values and observe the value transmission process.<\/p>\n\n\n\n<p>This is the reverse engineering perspective.<\/p>\n\n\n\n<p>From an Android development perspective: By implementing the developer&#8217;s process, we know how this encryption was implemented.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"716\" src=\"https:\/\/support.nullflag.com\/wp-content\/uploads\/2025\/10\/image-20251103190027977-1024x716.png\" alt=\"\" class=\"wp-image-583\" srcset=\"https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103190027977-1024x716.png 1024w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103190027977-300x210.png 300w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103190027977-768x537.png 768w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103190027977-1536x1074.png 1536w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103190027977-2048x1432.png 2048w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103190027977-360x252.png 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>There is a MainActivity, and when this app first starts, there&#8217;s an onCreate function that calls a method in some class. If a certain core parameter is obtained, then calling the encryption function at the Java layer can achieve encrypted submission. However, to increase the difficulty of cracking, we need to introduce functions written in C language.<\/p>\n\n\n\n<p>In the next section, we&#8217;ll cover JNI development, using System.loadLibrary to call a native function that is written in C language. We can see the specific implementation of the encrypt function in the crypt.c file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Android Development Context<\/h3>\n\n\n\n<p>If you see System.loadLibrary(&#8220;Crypt&#8221;); this code in the JADX decompiled code, it indicates that you need to find the libCrypt.so file in the app&#8217;s dynamic libraries and drag it into IDA for decompilation. By finding the exported function Java_com_yoloho_libcore_util_Crypt_encrypt_1data() in the SO file, you can roughly understand its meaning from the pseudocode. You need to understand their logic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"730\" src=\"https:\/\/support.nullflag.com\/wp-content\/uploads\/2025\/10\/image-20251103193408006-1024x730.png\" alt=\"\" class=\"wp-image-584\" srcset=\"https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103193408006-1024x730.png 1024w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103193408006-300x214.png 300w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103193408006-768x547.png 768w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103193408006-1536x1095.png 1536w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103193408006-2048x1460.png 2048w, https:\/\/www.nullflag.com\/support\/wp-content\/uploads\/2025\/10\/image-20251103193408006-360x257.png 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This course provides an introduction to C language programming concepts, specifically designed for reverse engineering and mobile security analysis. Students will learn essential C programming concepts including data types, pointers, arrays, structures, and linked lists.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. C Language Development Environment Setup<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Three Essential Components:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Language Syntax<\/strong>: Learn C grammar and write code<\/li>\n\n\n\n<li><strong>Compiler\/Interpreter<\/strong>: Compile and run code<\/li>\n\n\n\n<li><strong>IDE<\/strong>: Rapid development environment<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Compilers<\/h3>\n\n\n\n<p>After writing C code following the language syntax, it needs to be compiled by a compiler before execution.<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-8134a3e5\"\n     id=\"betterdocs-code-snippet-8134a3e5\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example: main.c<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-8134a3e5 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main(int argc, char const *argv[]) {\n    printf(&quot;hello world\\n&quot;);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-8134a3e5');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Compilation in Terminal:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; gcc main.c\n&gt;&gt;&gt; .\/a.out<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Common C Compilers:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GCC<\/strong>: GNU Compiler Collection (most widely used)<\/li>\n\n\n\n<li><strong>MSVC<\/strong>: Microsoft Visual C++ Compiler<\/li>\n\n\n\n<li><strong>Clang<\/strong>: LLVM-based compiler<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Platform-Specific Installation:<\/h3>\n\n\n\n<p><strong>macOS:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Default: Clang compiler (built-in with Xcode command line tools)<\/li>\n\n\n\n<li>If not available: Install Xcode from https:\/\/developer.apple.com\/xcode\/<\/li>\n<\/ul>\n\n\n\n<p><strong>Windows:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Recommended: MinGW (Minimalist GNU for Windows)<\/li>\n\n\n\n<li>Download: https:\/\/osdn.net\/projects\/mingw\/downloads\/68260\/mingw-get-setup.exe<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Integrated Development Environment (IDE)<\/h3>\n\n\n\n<p><strong>CLion by JetBrains:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download: https:\/\/www.jetbrains.com\/clion\/download\/other.html<\/li>\n\n\n\n<li>Recommended versions: 2023.3.1 (easier licensing) or latest 2025.3.1<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. C Language Syntax Fundamentals<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 String Handling<\/h3>\n\n\n\n<p><strong>Important Concept<\/strong>: C language does not have built-in string data types.<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-7a1331a4\"\n     id=\"betterdocs-code-snippet-7a1331a4\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Strings are created using character arrays (each character occupies 1 byte):<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-7a1331a4 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>\n#include &lt;stdio.h&gt;\n\nint main() {\n    \/\/ Single character\n    char letter = &#039;A&#039;;   \/\/ Only single quotes can be used here, not double quotes. This creates a character. It occupies one byte of storage.\n\n    \/\/ Character array\n    char word[5] = {&#039;c&#039;, &#039;a&#039;, &#039;l&#039;, &#039;l&#039;, &#039;\\0&#039;};  \/\/ &quot;call&quot; \u2014 the brackets [5] mean there are 5 elements. &#039;\\0&#039; is a null terminator that marks the end of the string &quot;call&quot;.\n\n    \/\/ Character array = string\n    char phrase[] = &quot;clang-basic-lesson&quot;; \/\/ {&#039;c&#039;,&#039;l&#039;,&#039;a&#039;,&#039;n&#039;,&#039;g&#039;,&#039;-&#039;,&#039;b&#039;,&#039;a&#039;,&#039;s&#039;,&#039;i&#039;,&#039;c&#039;,&#039;-&#039;,&#039;l&#039;,&#039;e&#039;,&#039;s&#039;,&#039;s&#039;,&#039;o&#039;,&#039;n&#039;,&#039;\\0&#039;} \u2014 although it looks like a string, it is actually a character array at the underlying level. &quot;phrase&quot; represents this string.\n\n    \/\/ Print single character\n    printf(&quot;%c\\n&quot;, letter);  \/\/ %c is used for printing characters\n\n    \/\/ Print character array &quot;word&quot;\n    printf(&quot;%s\\n&quot;, word);  \/\/ %s is used for printing strings\n\n    \/\/ Print character array &quot;phrase&quot;\n    printf(&quot;%s\\n&quot;, phrase);  \/\/ %s is used for printing strings\n\n    \/\/ Print Hello, Calleng!\n    printf(&quot;Hello, Calleng!\\n&quot;);\n\n    return 0;\n}\n<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-7a1331a4');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-9fa569c9\"\n     id=\"betterdocs-code-snippet-9fa569c9\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Complete Example with String Operations:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-9fa569c9 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n\nint main(int argc, char const *argv[])\n{\n    \/\/ ---------------------------------------------\n    \/\/ 1. Character type (1 byte storage)\n    \/\/ ---------------------------------------------\n    char v1 = &#039;w&#039;;\n    printf(&quot;v1 value: %c\\n&quot;, v1);\n    \/\/ %c is used to print a single character (not a string).\n\n\n    \/\/ ---------------------------------------------\n    \/\/ 2. Character array -&gt; String\n    \/\/ ---------------------------------------------\n    char v2[10] = {&#039;j&#039;, &#039;o&#039;, &#039;e&#039;, &#039;b&#039;, &#039;i&#039;, &#039;d&#039;, &#039;d&#039;, &#039;e&#039;, &#039;n&#039;, &#039;\\0&#039;};\n    printf(&quot;v2 value: %s\\n&quot;, v2);\n    \/\/ %s prints a null-terminated string (ends with &#039;\\0&#039;).\n    \/\/ If &#039;\\0&#039; is missing, printf() may read beyond memory and cause errors.\n\n\n    \/\/ ---------------------------------------------\n    \/\/ 3. Character array with sizeof() calculation\n    \/\/ ---------------------------------------------\n    char v3[] = &quot;NullFlag&quot;;\n    int length = sizeof(v3) \/ sizeof(char);\n    \/\/ sizeof(v3) gives the total size in bytes (includes &#039;\\0&#039;).\n    \/\/ Dividing by sizeof(char) gives the total number of stored characters, including the null terminator.\n    \/\/ So the result here is 9 (8 visible chars + 1 &#039;\\0&#039;).\n\n    printf(&quot;v3 value: %s, length: %d\\n&quot;, v3, length);\n    \/\/ Note: sizeof() measures memory size, not logical string length.\n    \/\/ For logical string length (excluding &#039;\\0&#039;), use strlen() instead.\n\n\n    \/\/ ---------------------------------------------\n    \/\/ 4. Integer array and sizeof()\n    \/\/ ---------------------------------------------\n    int ch_array[3] = {100, 200, 300};\n    int ch_array_size = sizeof(ch_array);\n\n    printf(&quot;ch_array size is %d\\n&quot;, ch_array_size);\n    \/\/ Output: 12, because each int occupies 4 bytes, and 3 * 4 = 12.\n    \/\/ sizeof() returns the total byte size.\n    \/\/ To get the number of elements: sizeof(ch_array) \/ sizeof(int) = 3.\n\n\n    \/\/ ---------------------------------------------\n    \/\/ 5. Character array with Chinese characters (UTF-8)\n    \/\/ ---------------------------------------------\n    char Chinese_characters[] = &quot;\u4e2d\u6587Bidden&quot;;\n    \/\/ In UTF-8 encoding, each Chinese character (like &#039;\u4e2d&#039; or &#039;\u6587&#039;) typically occupies 3 bytes.\n    \/\/ &quot;\u4e2d\u6587&quot; = 6 bytes, &quot;Bidden&quot; = 6 bytes, plus &#039;\\0&#039; = 1 byte \u2192 total 13 bytes in memory.\n\n    int len = sizeof(Chinese_characters) \/ sizeof(char);\n    printf(&quot;Chinese_characters value: %s, total bytes: %d\\n&quot;, Chinese_characters, len);\n    \/\/ sizeof() counts the total bytes in memory, including &#039;\\0&#039;.\n\n\n    \/\/ ---------------------------------------------\n    \/\/ 6. String length calculation with strlen()\n    \/\/ ---------------------------------------------\n    unsigned long dataLen = strlen(Chinese_characters);\n    printf(&quot;using function strlen() Length: %lu\\n&quot;, dataLen);\n    \/\/ strlen() returns the number of visible characters (not including &#039;\\0&#039;).\n    \/\/ sizeof() counts total memory size (including &#039;\\0&#039;).\n\n    return 0;  \/\/ Finally, remember: bytes, characters, character arrays, and how they are represented \u2014 these are the core concepts you must understand first when learning strings.\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-9fa569c9');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Arrays<\/h3>\n\n\n\n<p><strong>Key Concept<\/strong>: Array elements are stored contiguously in memory with adjacent addresses.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>char v2&#91;3] = {'w','u','p'};\nint v3&#91;3] = {11,22,33};<\/code><\/pre>\n\n\n\n<p><strong>Array Characteristics:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fixed number of elements<\/li>\n\n\n\n<li>Fixed data types (each element occupies same memory size)<\/li>\n<\/ul>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-bafef85d\"\n     id=\"betterdocs-code-snippet-bafef85d\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Memory Address Demonstration:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-bafef85d .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    char v3[] = &quot;calleng&quot;;\n\n    printf(&quot;Position 0 value: %c, memory address: %p \\n&quot;, v3[0], &amp;v3[0]);\n    printf(&quot;Position 1 value: %c, memory address: %p \\n&quot;, v3[1], &amp;v3[1]);\n    printf(&quot;Position 2 value: %c, memory address: %p \\n&quot;, v3[2], &amp;v3[2]);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-bafef85d');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-3eaca427\"\n     id=\"betterdocs-code-snippet-3eaca427\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Integer Array Memory Layout:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-3eaca427 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main(int argc, char const *argv[]) {\n    int v3[] = {11, 22, 33, 44, 55, 66};  \/\/ Each integer occupies 4 bytes\n    printf(&quot;Position 0 value: %d, memory address: %p \\n&quot;, v3[0], &amp;v3[0]); \/\/ 0x00000\n    printf(&quot;Position 1 value: %d, memory address: %p \\n&quot;, v3[1], &amp;v3[1]); \/\/ 0x00004\n    printf(&quot;Position 2 value: %d, memory address: %p \\n&quot;, v3[2], &amp;v3[2]); \/\/ 0x00008\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-3eaca427');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Array Variable as Pointer<\/strong><\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-2e5ec7d1\"\n     id=\"betterdocs-code-snippet-2e5ec7d1\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Important: Array variables point to the memory address of the first element.<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-2e5ec7d1 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main(int argc, char const *argv[]) {\n    \/\/ Character array\n    char v3[] = {&#039;c&#039;, &#039;a&#039;, &#039;l&#039;, &#039;l&#039;, &#039;e&#039;, &#039;n&#039;, &#039;g&#039;};\n    printf(&quot;v3 value: %p \\n&quot;, v3);      \/\/ Array name = first element address\n    printf(&quot;v3 address: %p \\n&quot;, &amp;v3);    \/\/ Array address\n    printf(&quot;v3[0] address: %p \\n&quot;, &amp;v3[0]); \/\/ First element address\n    printf(&quot;v3[1] address: %p \\n&quot;, &amp;v3[1]); \/\/ Second element address\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-2e5ec7d1');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 Integer Data Types<\/h3>\n\n\n\n<p><strong>Memory Allocation:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>short<\/code>: 2 bytes<\/li>\n\n\n\n<li><code>int<\/code>: 4 bytes<\/li>\n\n\n\n<li><code>long<\/code>: 8 bytes<\/li>\n<\/ul>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-783b60c1\"\n     id=\"betterdocs-code-snippet-783b60c1\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">CPP<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-783b60c1 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main(int argc, char const *argv[]) {\n    \/\/ Signed vs Unsigned\n    \/\/ signed short v4[] = {11, 22, 33};    \/\/ Default: signed\n    \/\/ unsigned short v4[] = {11, 22, 33};   \/\/ Unsigned\n\n    short v4[] = {-11, 22, 33};\n    printf(&quot;Value: %d, memory address: %p\\n&quot;, v4[0], &amp;v4[0]);\n    printf(&quot;Value: %d, memory address: %p\\n&quot;, v4[1], &amp;v4[1]);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-783b60c1');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">2.4 Pointers<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Pointer Concept Visualization<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>Memory Layout:\n\f\u0010\n\u0002      Memory Location        \u0002\n\u001c$\n\u0002 0x7ffd257fceac \u0002   666     \u0002  \u0090 v1 points here\n\u0002 0x7ffd257fcea0 \u0002 0x7ffd... \u0002  \u0090 v2 points here (stores v1's address)\n\u0014\u0018<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Basic Pointer Syntax<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>int v1 = 666;\nint* v2 = &amp;v1;   \/\/ &amp; operator: Get memory address (8 bytes on 64-bit systems)<\/code><\/pre>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-c920b242\"\n     id=\"betterdocs-code-snippet-c920b242\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Pointer Example 1: Basic Usage<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-c920b242 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    int v1 = 666;\n    int* v2 = &amp;v1;\n\n    printf(&quot;v1 value: %d, memory address: %p \\n&quot;, v1, &amp;v1);\n    printf(&quot;v2 value: %p, memory address: %p \\n&quot;, v2, &amp;v2);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-c920b242');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Output:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>v1 value: 666, memory address: 0x7ffd257fceac\nv2 value: 0x7ffd257fceac, memory address: 0x7ffd257fcea0<\/code><\/pre>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-7bf1ecb2\"\n     id=\"betterdocs-code-snippet-7bf1ecb2\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Pointer Example 2: Dereferencing<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-7bf1ecb2 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>int v1 = 666;\nint* v2 = &amp;v1;\n\n\/\/ If you have a pointer variable v2 storing a memory address,\n\/\/ how do you get the value at that address?\nint v3 = *v2; \/\/ 666 (dereference operator)<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-7bf1ecb2');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Key Pointer Operators:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>&amp;variable<\/code>: Get memory address of variable<\/li>\n\n\n\n<li><code>*pointer<\/code>: Get value stored at memory address pointed to by pointer<\/li>\n<\/ul>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-aa9a852b\"\n     id=\"betterdocs-code-snippet-aa9a852b\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Pointer Example 3: Multiple Pointers to Same Address<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-aa9a852b .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    int v1 = 666;\n    int* v2 = &amp;v1;\n    int* v3 = &amp;v1;\n\n    v1 = 999;\n\n    printf(&quot;v2 pointer value: %d \\n&quot;, *v2); \/\/ 999\n    printf(&quot;v3 pointer value: %d \\n&quot;, *v3); \/\/ 999\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-aa9a852b');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-31c9d23c\"\n     id=\"betterdocs-code-snippet-31c9d23c\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Pointer Example 4: Modifying Values Through Pointers<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-31c9d23c .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    int v1 = 666;\n    int* v2 = &amp;v1;\n    int* v3 = &amp;v1;\n\n    printf(&quot;v2 pointer value: %d \\n&quot;, *v2); \/\/ 666\n    printf(&quot;v3 pointer value: %d \\n&quot;, *v3); \/\/ 666\n\n    *v2 = 888; \/\/ Modify value through pointer\n\n    printf(&quot;v2 pointer value: %d \\n&quot;, *v2); \/\/ 888\n    printf(&quot;v3 pointer value: %d \\n&quot;, *v3); \/\/ 888\n    printf(&quot;v1 value: %d \\n&quot;, v1);           \/\/ 888\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-31c9d23c');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-10ca7410\"\n     id=\"betterdocs-code-snippet-10ca7410\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Pointer Example 5: Function Parameters<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-10ca7410 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nvoid modifyValue(int *arg) {\n    *arg = 555;\n}\n\nint main() {\n    int v1 = 666;\n    modifyValue(&amp;v1);  \/\/ Pass address\n    printf(&quot;v1 value after modification: %d \\n&quot;, v1); \/\/ 555\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-10ca7410');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h4 class=\"wp-block-heading\">Critical Warning for Reverse Engineers<\/h4>\n\n\n\n<p>When analyzing C code, be cautious about function calls:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>v1 = 123;\ndoEncrypt(&amp;v1);  \/\/ DANGEROUS: v1's value may change after this call\n\n\/\/ Later in code, v1 might not be 123 anymore!<\/code><\/pre>\n\n\n\n<p>vs.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>v1 = 123;\ndoEncrypt(v1);   \/\/ SAFE: v1 will remain 123\n\n\/\/ v1 is guaranteed to still be 123<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Pointer Summary<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Essence<\/strong>: Pointers are data types representing memory addresses, enabling multiple variables to reference the same value<\/li>\n\n\n\n<li><strong>Pointer Types<\/strong>: <code>int*<\/code>, <code>char*<\/code>, <code>short*<\/code>, etc.<\/li>\n\n\n\n<li><strong>Key Operators<\/strong>: <code>&amp;<\/code> (address of) and <code>*<\/code> (dereference)<\/li>\n\n\n\n<li><strong>Memory Usage<\/strong>: One pointer occupies 8 bytes on 64-bit systems<\/li>\n\n\n\n<li><strong>Purpose<\/strong>: Memory efficiency and shared data access<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.5 Advanced Pointer Concepts<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">Pointer Arithmetic Examples<\/h3>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-f3453fb1\"\n     id=\"betterdocs-code-snippet-f3453fb1\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example 1: Pointer Navigation<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-f3453fb1 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    char v34[] = {&#039;a&#039;, &#039;e&#039;, &#039;x&#039;};\n    char *v28 = v34;  \/\/ Points to first element\n\n    printf(&quot;v34[0]: %c, address: %p \\n&quot;, v34[0], &amp;v34[0]);\n    printf(&quot;v34[1]: %c, address: %p \\n&quot;, v34[1], &amp;v34[1]);\n    printf(&quot;v34[2]: %c, address: %p \\n&quot;, v34[2], &amp;v34[2]);\n\n    printf(&quot;v28 initial value: %p \\n&quot;, v28);\n    v28 += 1;\n    printf(&quot;v28 after +1: %p \\n&quot;, v28);\n    v28 += 1;\n    printf(&quot;v28 after +2: %p \\n&quot;, v28);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-f3453fb1');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-b176d353\"\n     id=\"betterdocs-code-snippet-b176d353\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example 2: Reading Through Pointer Arithmetic<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-b176d353 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    char v34[] = {&#039;a&#039;, &#039;e&#039;, &#039;x&#039;};\n    char *v28 = v34;\n\n    printf(&quot;v28: %p, value: %c \\n&quot;, v28, *v28);\n    v28 += 1;\n    printf(&quot;v28: %p, value: %c \\n&quot;, v28, *v28);\n    v28 += 1;\n    printf(&quot;v28: %p, value: %c \\n&quot;, v28, *v28);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-b176d353');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-4d36967c\"\n     id=\"betterdocs-code-snippet-4d36967c\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example 3: Modifying Through Pointer Arithmetic<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-4d36967c .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nint main() {\n    char v34[] = {&#039;a&#039;, &#039;e&#039;, &#039;x&#039;};\n    char *v28 = v34;\n\n    v28 += 1;        \/\/ Point to second element\n    *v28 = &#039;b&#039;;      \/\/ Modify it\n\n    printf(&quot;v34[0]: %c \\n&quot;, v34[0]); \/\/ &#039;a&#039;\n    printf(&quot;v34[1]: %c \\n&quot;, v34[1]); \/\/ &#039;b&#039; (modified)\n    printf(&quot;v34[2]: %c \\n&quot;, v34[2]); \/\/ &#039;x&#039;\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-4d36967c');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">String Manipulation Examples<\/h3>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-3f7f5051\"\n     id=\"betterdocs-code-snippet-3f7f5051\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example 1: String Search<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-3f7f5051 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n\nint main() {\n    char name[] = &quot;calleng&quot;;\n\n    \/\/ Check if substring &quot;pe&quot; exists in name\n    char *res = strstr(name, &quot;pe&quot;);\n    if (res == NULL) {\n        printf(&quot;Not found\\n&quot;);\n    } else {\n        printf(&quot;Found at position: %p\\n&quot;, res);\n    }\n\n    return 0;\n}\n\/\/ Application: Anti-debugging techniques (checking for &quot;frida\/tmp&quot; strings)<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-3f7f5051');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-d96adfd7\"\n     id=\"betterdocs-code-snippet-d96adfd7\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example 2: Dynamic String Copy<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-d96adfd7 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;stdlib.h&gt;\n\nint main() {\n    char name[] = &quot;wupeiqi&quot;;\n    printf(&quot;Original: %s, address: %p\\n&quot;, name, name);\n\n    \/\/ Allocate memory for copy (+1 for null terminator)\n    char *newName = malloc(strlen(name) + 1);\n\n    \/\/ Copy content\n    strcpy(newName, name);\n\n    printf(&quot;Copy: %s, address: %p\\n&quot;, newName, newName);\n\n    \/\/ Free allocated memory\n    free(newName);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-d96adfd7');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-6b135f33\"\n     id=\"betterdocs-code-snippet-6b135f33\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Example 3: String Concatenation<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-6b135f33 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;stdlib.h&gt;\n\nint main() {\n    char name[] = &quot;Joe&quot;;\n    char role[] = &quot;Bidden&quot;;\n\n    \/\/ Allocate sufficient memory\n    char *result = malloc(strlen(name) + strlen(role) + 1);\n\n    \/\/ Concatenate strings\n    strcpy(result, name);\n    strcat(result, role);\n\n    printf(&quot;Result: %s\\n&quot;, result); \/\/ &quot;JoeBidden&quot;\n\n    free(result);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-6b135f33');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">2.6 Pointer to Pointer<\/h3>\n\n\n\n<p><strong>Concept<\/strong>: Pointers can point to other pointers, creating multiple levels of indirection.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Memory Layout:\n\f\u0010\n\u0002     Level 1 (Data)          \u0002\n\u001c$\n\u0002 0x1000 \u0002 666                \u0002  \u0090 v1 points here\n\u0002 0x2000 \u0002 0x1000             \u0002  \u0090 v2 points here (stores v1's address)\n\u0002 0x3000 \u0002 0x2000             \u0002  \u0090 v3 points here (stores v2's address)\n\u0014\u0018<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>int v1 = 666;\nint* v2 = &amp;v1;     \/\/ Single pointer\nint* v3 = &amp;v1;     \/\/ Single pointer\nint** v4 = &amp;v2;    \/\/ Pointer to pointer\nint*** v5 = &amp;v4;   \/\/ Pointer to pointer to pointer<\/code><\/pre>\n\n\n\n<p><strong>Essence<\/strong>: Pointers enable data manipulation based on memory addresses, providing powerful control over program memory.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.7 Structures<\/h3>\n\n\n\n<p>Structures allow grouping of related data under a single name.<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-c20935a0\"\n     id=\"betterdocs-code-snippet-c20935a0\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Basic Structure Definition<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-c20935a0 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nstruct Person {\n    char name[30];\n    int age;\n};\n\nint main() {\n    struct Person v1 = {&quot;Obama&quot;, 18};\n    struct Person v2 = {&quot;Trump&quot;, 3};\n    struct Person v3 = {&quot;Kelinton&quot;, 31};\n\n    printf(&quot;Name: %s\\n&quot;, v1.name);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-c20935a0');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-b90bcd48\"\n     id=\"betterdocs-code-snippet-b90bcd48\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Structure Pointer Access<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-b90bcd48 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nstruct Person {\n    char name[30];\n    int age;\n};\n\nint main() {\n    struct Person v1 = {&quot;elop of Nokia CEO&quot;, 18};\n\n    \/\/ Direct member access\n    printf(&quot;Name: %s \\n&quot;, v1.name);\n\n    \/\/ Pointer to structure\n    struct Person *pp = &amp;v1;\n\n    \/\/ Access through pointer with dereference\n    printf(&quot;Name: %s \\n&quot;, (*pp).name);\n\n    \/\/ Access through pointer with arrow operator\n    printf(&quot;Name: %s \\n&quot;, pp-&gt;name);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-b90bcd48');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Linked Lists Implementation<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Visualization:\n\f\u0010    \f\u0010    \f\u0010\n\u0002 11  \u0002\u0092\u0092\u0092\u0002 22  \u0002\u0092\u0092\u0092\u0002 33  \u0002\u0092\u0092\u0092NULL\n\u0014\u0018    \u0014\u0018    \u0014\u0018<\/code><\/pre>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-474b10a5\"\n     id=\"betterdocs-code-snippet-474b10a5\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Singly Linked List:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-474b10a5 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>struct Node {\n    int data;\n    struct Node *next; \/\/ Pointer to next node\n};\n\n\/\/ Node creation\nstruct Node v3 = {33, NULL};\nstruct Node v2 = {22, &amp;v3};\nstruct Node v1 = {11, &amp;v2};\n\n\/\/ Access patterns\nv1.data;                   \/\/ 11\n(*v1.next).data;          \/\/ 22\nv1.next-&gt;data;            \/\/ 22\nv1.next-&gt;next-&gt;data;      \/\/ 33<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-474b10a5');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-91050c07\"\n     id=\"betterdocs-code-snippet-91050c07\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Complete Linked List Example:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-91050c07 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nstruct Person {\n    int data;\n    struct Person *next;\n};\n\nint main(int argc, char const *argv[]) {\n    struct Person p3 = {33};\n    struct Person p2 = {22, &amp;p3};\n    struct Person p1 = {11, &amp;p2};\n\n    printf(&quot;p1 data: %d\\n&quot;, p1.data);\n    printf(&quot;p2 data: %d\\n&quot;, p1.next-&gt;data);\n    printf(&quot;p3 data: %d\\n&quot;, p1.next-&gt;next-&gt;data);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-91050c07');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<pre class=\"wp-block-code\"><code>Visualization:\nNULL\u0090\u0090\u0090\f\u0010\u0094\u0094\f\u0010\u0094\u0094\f\u0010\u0092\u0092\u0092NULL\n      \u0002 11  \u0002   \u0002 22  \u0002   \u0002 33  \u0002\n      \u0014\u0018   \u0014\u0018   \u0014\u0018<\/code><\/pre>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-47465e49\"\n     id=\"betterdocs-code-snippet-47465e49\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Doubly Linked List:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-47465e49 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nstruct Person {\n    int data;\n    struct Person *next;    \/\/ Next node pointer\n    struct Person *prev;    \/\/ Previous node pointer\n};\n\nint main() {\n    struct Person p3 = {33};\n    struct Person p2 = {22};\n    struct Person p1 = {11};\n\n    \/\/ Set forward links\n    p1.next = &amp;p2;\n    p2.next = &amp;p3;\n\n    \/\/ Set backward links\n    p2.prev = &amp;p1;\n    p3.prev = &amp;p2;\n\n    \/\/ Forward traversal\n    printf(&quot;Forward: %d -&gt; %d -&gt; %d\\n&quot;,\n           p1.data, p1.next-&gt;data, p1.next-&gt;next-&gt;data);\n\n    \/\/ Backward traversal\n    printf(&quot;Backward: %d -&gt; %d -&gt; %d\\n&quot;,\n           p3.data, p3.prev-&gt;data, p3.prev-&gt;prev-&gt;data);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-47465e49');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<pre class=\"wp-block-code\"><code>Visualization:\n      \f\u0010\n      \u0093     \u0091\n\f\u0010\u0094\u0094\f\u0010\u0094\u0094\f\u0010\u0094\u0094\n\u0002 11  \u0002   \u0002 22  \u0002   \u0002 33  \u0002\n\u0014\u0018   \u0014\u0018   \u0014\u0018<\/code><\/pre>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-67727b2e\"\n     id=\"betterdocs-code-snippet-67727b2e\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Circular Doubly Linked List:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-67727b2e .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\nstruct Person {\n    int data;\n    struct Person *next;\n    struct Person *prev;\n};\n\nint main() {\n    struct Person p3 = {33};\n    struct Person p2 = {22};\n    struct Person p1 = {11};\n\n    \/\/ Create circular links\n    p1.next = &amp;p2;    p1.prev = &amp;p3;\n    p2.next = &amp;p3;    p2.prev = &amp;p1;\n    p3.next = &amp;p1;    p3.prev = &amp;p2;\n\n    \/\/ Circular traversal\n    printf(&quot;Circular traversal:\\n&quot;);\n    printf(&quot;Position 1: %d\\n&quot;, p1.data);\n    printf(&quot;Position 2: %d\\n&quot;, p1.next-&gt;data);\n    printf(&quot;Position 3: %d\\n&quot;, p1.next-&gt;next-&gt;data);\n    printf(&quot;Back to 1: %d\\n&quot;, p1.next-&gt;next-&gt;next-&gt;data);\n\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-67727b2e');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<h3 class=\"wp-block-heading\">2.8 Preprocessor and Header Files<\/h3>\n\n\n\n<p><strong>Preprocessor<\/strong>: Runs before program compilation.<\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-43f3f9eb\"\n     id=\"betterdocs-code-snippet-43f3f9eb\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Macro Definitions<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-43f3f9eb .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\n#define ME    2024\n#define SIZE  07\n\nint main() {\n    int data = 19;\n    printf(&quot;%d-%d-%d \\n&quot;, ME, SIZE, data);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-43f3f9eb');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-1bcc86d2\"\n     id=\"betterdocs-code-snippet-1bcc86d2\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Function-like Macros<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-1bcc86d2 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\n#define ADD(x1, x2) (x1 + x2 + 100)\n\nint main() {\n    int data = ADD(11, 22); \/\/ 11 + 22 + 100\n    printf(&quot;Result: %d \\n&quot;, data);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-1bcc86d2');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-d6fd2aa1\"\n     id=\"betterdocs-code-snippet-d6fd2aa1\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Warning: Be careful with macro parentheses:<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-d6fd2aa1 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n\n#define DB(x1, x2) (x1 * x2)\n\nint main() {\n    int data = DB(2 + 1, 4);  \/\/ Becomes: (2 + 1 * 4) = 6, not 12\n    printf(&quot;Result: %d \\n&quot;, data);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-d6fd2aa1');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Multi-file Projects<\/strong><\/p>\n\n\n\n<p><strong>Project Structure:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>project\/\n\u001c main.c\n\u001c utils.c\n\u0014 utils.h<\/code><\/pre>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-54968919\"\n     id=\"betterdocs-code-snippet-54968919\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Header File (utils.h):<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-54968919 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>\/\/ Function declaration\nint plus(int v1);<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-54968919');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-f1859997\"\n     id=\"betterdocs-code-snippet-f1859997\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Implementation File (utils.c):<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-f1859997 .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>int plus(int v1) {\n    return v1 + 100;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-f1859997');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Main File (main.c):<\/strong><\/p>\n\n\n\n<div class=\"betterdocs-code-snippet-wrapper theme-light betterdocs-code-snippet-d1e0e53e\"\n     id=\"betterdocs-code-snippet-d1e0e53e\"\n     data-language=\"cpp\"\n     data-copy-button=\"true\">\n\n            <div class=\"betterdocs-code-snippet-header betterdocs-file-preview-header\">\n        <div class=\"betterdocs-file-preview-left\">\n                            <div class=\"betterdocs-traffic-lights\">\n                    <span class=\"traffic-light traffic-light-red\"><\/span>\n                    <span class=\"traffic-light traffic-light-yellow\"><\/span>\n                    <span class=\"traffic-light traffic-light-green\"><\/span>\n                <\/div>\n            \n            <div class=\"betterdocs-file-info\">\n                                    <div class=\"betterdocs-file-icon\">\n                                                    <span class=\"betterdocs-file-icon-emoji\">\u2699\ufe0f<\/span>\n                                            <\/div>\n                \n                                    <div class=\"betterdocs-file-name\">\n                        <span class=\"file-name-text\">Main File (main.c):<\/span>\n                    <\/div>\n                            <\/div>\n        <\/div>\n\n        <div class=\"betterdocs-file-preview-right\">\n                            <div class=\"betterdocs-code-snippet-copy-container\">\n                    <button class=\"betterdocs-code-snippet-copy-button\"\n                            type=\"button\"\n                            data-clipboard-target=\"#betterdocs-code-snippet-d1e0e53e .betterdocs-code-snippet-code code\"\n                            aria-label=\"Copy code to clipboard\">\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <path d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z\" fill=\"currentColor\"\/>\n                        <\/svg>\n                    <\/button>\n                                    <\/div>\n                    <\/div>\n        <\/div>\n    \n    <div class=\"betterdocs-code-snippet-content\">\n        \n        <pre class=\"betterdocs-code-snippet-code language-cpp\"><code>#include &lt;stdio.h&gt;\n#include &quot;utils.h&quot;  \/\/ Include custom header\n\nint main() {\n    int data = plus(100);\n    printf(&quot;Result: %d \\n&quot;, data);\n    return 0;\n}<\/code><\/pre>\n    <\/div>\n<\/div>\n\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Initialize copy functionality for this specific snippet\n    const snippet = document.getElementById('betterdocs-code-snippet-d1e0e53e');\n    if (snippet && window.BetterDocsCodeSnippet) {\n        window.BetterDocsCodeSnippet.initCopyButton(snippet);\n    }\n});\n<\/script>\n\n\n\n<p><strong>Application Note<\/strong>: For JNI development, we include C standard library headers and JNI-specific headers to access native functionality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Summary and Key Concepts<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Core Takeaways<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Memory Management<\/strong>: Understanding pointers is crucial for reverse engineering<\/li>\n\n\n\n<li><strong>Data Structures<\/strong>: Arrays, structures, and linked lists form the foundation<\/li>\n\n\n\n<li><strong>Type System<\/strong>: Strong typing with explicit memory allocation<\/li>\n\n\n\n<li><strong>Preprocessor<\/strong>: Macro substitution before compilation<\/li>\n\n\n\n<li><strong>Multi-file Projects<\/strong>: Header files enable modular development<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">For Reverse Engineers<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pointer Analysis<\/strong>: Essential for understanding data flow<\/li>\n\n\n\n<li><strong>Memory Layout<\/strong>: Critical for buffer overflow and memory corruption analysis<\/li>\n\n\n\n<li><strong>Structure Definitions<\/strong>: Key to reverse engineering complex data formats<\/li>\n\n\n\n<li><strong>JNI Integration<\/strong>: Important for Android native code analysis<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Next Steps<\/h3>\n\n\n\n<p>This foundation enables:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Advanced reverse engineering techniques<\/li>\n\n\n\n<li>Binary exploitation analysis<\/li>\n\n\n\n<li>Mobile security assessment<\/li>\n\n\n\n<li>Custom tool development for security research<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Course Objective Why Learn C Language? From Reverse Engineering Perspective In Android application security analysis, we encounter different implementation approaches: &#8220;We don&#8217;t approach this from a development perspective, but rather from a reverse engineering perspective. As long as we can understand and analyze, that&#8217;s sufficient. Different goals lead to different levels of learning difficulty. Why&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"doc_category":[16],"glossaries":[],"doc_tag":[],"knowledge_base":[12],"class_list":["post-480","docs","type-docs","status-publish","hentry","doc_category-c_basic","knowledge_base-cpp_c_java_arm64_javascript"],"year_month":"2026-05","word_count":1004,"total_views":"212","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"display_name":"sandbox","author_link":"https:\/\/www.nullflag.com\/support\/author\/sandbox\/"},"doc_category_info":[{"term_name":"C Lang","term_url":"https:\/\/www.nullflag.com\/support\/kb\/cpp_c_java_arm64_javascript\/c_basic\/"}],"doc_tag_info":[],"taxonomy_info":{"doc_category":[{"value":16,"label":"C Lang"}],"knowledge_base":[{"value":12,"label":"Cpp\/C\/Java\/Arm64ASM\/JavaScript"}]},"featured_image_src_large":false,"comment_info":0,"knowledge_base_info":[{"term_name":"Cpp\/C\/Java\/Arm64ASM\/JavaScript","term_url":"https:\/\/www.nullflag.com\/support\/kb\/cpp_c_java_arm64_javascript\/","term_slug":"cpp_c_java_arm64_javascript"}],"knowledge_base_slug":["cpp_c_java_arm64_javascript"],"_links":{"self":[{"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/docs\/480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/comments?post=480"}],"version-history":[{"count":14,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/docs\/480\/revisions"}],"predecessor-version":[{"id":588,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/docs\/480\/revisions\/588"}],"wp:attachment":[{"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/media?parent=480"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/doc_category?post=480"},{"taxonomy":"glossaries","embeddable":true,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/glossaries?post=480"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/doc_tag?post=480"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/www.nullflag.com\/support\/wp-json\/wp\/v2\/knowledge_base?post=480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}