<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                很多時候,我們無法確定數據類型,不管是傳入的參數還是返回值。 比如 java 里面 api 返回體中的數據,經常會用泛型,因為每個api返回的數據實體都不一樣,無法確定。 C 語言里面也有類似的情況,所有會有泛型指針,來切換指針的類型。比如我們在堆內存上申請空間的時候,使用`malloc` ```c void * malloc(size_t size); ``` 因為我們不知道這個內存申請完了以后用來存放什么,所以返回的是泛型指針。也就可以存放任何類型行的數據了。 # 實例 ```c #include <stdio.h> int main(int argc, char const *argv[]) { void *p; int a = 1; p = &a; // 把變量a的地址存放到p中 printf("a: %d\n",*(int *)p); // 如果要打印出a的值,那么就需要把p指針首選轉換 int 類型的指針,然后通過 * 來解引,獲取真實的值 return 0; } ``` 增加字符串 ```c #include <stdio.h> int main(int argc, char const *argv[]) { void *p; int a = 1; p = &a; // 把變量a的地址存放到p中 printf("a: %d\n",*(int *)p); // 如果要打印出a的值,那么就需要把p指針首選轉換 int 類型的指針,然后通過 * 來解引,獲取真實的值 char *c = "1111"; p = c; printf("c: %s\n", p); // 不會報錯 printf("c: %s\n", (char *)p); // 這樣更加易讀 return 0; } ``` 為什么不是 ```c printf("c: %s\n", *(char *)p); ``` 因為`printf`的`%s`參數就是`char *`指針。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看