什麼是 C 語言中的指標 為什麼要使用指標 如何使用指標

發布 科技 2024-05-04
26個回答
  1. 匿名使用者2024-01-28

    在 C++ 中,指標是變數的位址。

    由於在函式傳遞引數C++---實際上只有一種形式,因此將變數的位址傳遞給函式將使函式易於修改引數的值。

    當然,這只是指標的一種非常常見的用法。

    此外,指標在構造資料結構、函式指標方面很有用。

    指標有兩個最基本的操作。

    1.分配。 例如,通常,它必須是相同型別的對等方之間的指標分配。

    int intvar;

    int * pint = &intvar;

    2.取消引用。

    例如,運算子為 *。

    pint = 10;品脫引用是 intvar

  2. 匿名使用者2024-01-27

    坦率地說,指標和變數是一回事。 指標是儲存的記憶體位址。

    假設您輸出乙個指標。

    int *i = new int();

    std::cout “結果是一行十六進製中的正整數。

    而這個正整數 i 的內容。 而這個內容對應於乙個記憶體位址。

    為什麼要使用指標?

    事實上,這是為了避免大規模的資料複製。

  3. 匿名使用者2024-01-26

    指標可以使程式的設計更加靈活,很多動態資料都是依靠指標來儲存位址的,比如鍊表是通過指標連線的,如果沒有指標,當資料量很大且程式開發量不確定時,很難使用變數提前宣告大量的變數, 通過指標就可以做到了。函式也可以由指標呼叫,並且指標比複製大型資料結構更容易傳遞......

  4. 匿名使用者2024-01-25

    所有變數值都儲存在記憶體中,每個記憶體都有乙個位址,這是乙個整數,就像門牌號用於定位(在技術術語中稱為定址)一樣,位址對應於乙個位元組(8 位)記憶體單元。

    在今天的編譯器中,整數 int 的值占用 32 位或 4 個位元組,編譯器將第乙個位元組的編號定義為整數的位址,這被稱為指標變數,因為儲存位址的變數就像乙個指向位址的箭頭。

    int a =10;定義乙個整數變數 a 並為其賦值 10

    int *p =&a;定義乙個指標變數 p,值 a 的記憶體位址和 & 符號表示引用它後面的變數的位址。

    cont “定址>值。

    由於指標是變數第乙個位元組的位址,因此它告訴編譯器引用的位址包含多少個連續位元組,因此指標也具有型別。 例如,在上面的示例中,p 指標被宣告為整數指標,以便編譯器知道 p 指向 4 位元組的記憶體塊。

    您可以將指標變數視為一般整數變數,用於儲存整數(位址是整數),但整數表示位址,在本例中為 a 的位址。

    它在 C C++ 中很靈活,但它也很危險且難以學習,如果指標指向錯誤的位址,會導致程式崩潰,所以它已經被 Microsoft 封裝在 C 中,但裡面仍然有指標。

    如有必要,指標也可以在 C 中使用,使用 non-safe,在專案構建選項卡中勾選“允許非安全”,然後就可以使用指標了,但不建議這樣做。

    unsafe

  5. 匿名使用者2024-01-24

    指標的作用是標識一段記憶體。 計算機記憶體中的每個位元組都有乙個數字,稱為位址(可以簡單地理解為指標),任何讀取或寫入記憶體的指令都必須攜帶位址資訊,否則計算機將不知道如何讀寫那段記憶體。 無論您的程式是用哪種語言編寫的,為了執行資料並且必須駐留在記憶體中,CPU 必須有乙個指向記憶體塊的“指標”(程式計數器)來執行指令,如果指令要操作記憶體資料,則該指令必須攜帶額外的位址資訊。

    C 指標賦予程式設計師直接操作和管理記憶體的能力,這也是 C 適合編寫低階軟體的原因之一。 目前可用的作業系統是用 C(有時是 C++)和組合語言編寫的。 在底層軟體領域,C語言佔主導地位。

    C 通過指標操縱記憶體,雖然 C 可以通過變數名訪問記憶體,但變數名在編譯後會轉換為位址。

    其他語言沒有指標或位址概念,但它們需要乙個位址來訪問記憶體,因此與位址相關的底層操作由語言的執行時庫負責,而位址對於程式設計師來說“不存在”。

  6. 匿名使用者2024-01-23

    C 也有指標,但它是物件導向的,並且有很多封裝,其中指標 (*) 成為引用 (refs),(a->b) 變成 (. 指標是位址,將記憶單元繪製成立方體(在紙上可以看到 3 個面),並標記以下值:變數名稱、位址和值。

    這要生動得多。

  7. 匿名使用者2024-01-22

    可以理解為按邏輯順序排列的門牌號嗎?

  8. 匿名使用者2024-01-21

    C 可以做到這一切。 但是C能做的,C可能做不到。

    指標指向記憶體位址,這意味著C語言可以直接操作計算機的硬體,只要有位址,這也是為什麼C語言適合底層開發的原因。

  9. 匿名使用者2024-01-20

    注意指標和指標變數這兩個概念...

  10. 匿名使用者2024-01-19

    指標是一段 32 位資料,表示可以儲存任何內容的記憶體位址。 也就是說,指標可以操作任何內容,因此指標靈活而強大,但它們也引入了複雜性。 只要你了解了指標的原理,不管它有多複雜,你都可以一點一點地分析它。

    C 與指標有相似之處,可以直接使用 unsafe 塊中的指標進行操作。

  11. 匿名使用者2024-01-18

    如果沒有指標,它就會過時。

  12. 匿名使用者2024-01-17

    指標不用於獲取位址?

  13. 匿名使用者2024-01-16

    指標實際上是乙個記憶體位址,例如,函式指標是乙個函式的入口位址,系統可以通過它找到函式的位置並呼叫它。

  14. 匿名使用者2024-01-15

    指標是C++中乙個非常重要的概念,指標的傳遞可以大大提高效率。

  15. 匿名使用者2024-01-14

    指標是 C 語言中廣泛使用的資料型別。 指標程式設計是 C 語言最主要的風格之一。

    指標變數可用於表示各種資料結構; 易於使用的陣列和字串; 它還可以像組合語言一樣處理記憶體位址,從而對程式進行簡潔高效的程式設計。 指標極大地豐富了 C 語言的功能。

    學習指標是學習C語言最重要的部分,我們能否正確理解和使用指標,是檢驗我們是否掌握了C語言的標誌。

    同時,指標也是C語言中最難的部分,除了正確理解基本概念外,還必須多程式設計,在電腦上除錯。 只要你這樣做,指標就不難掌握。

  16. 匿名使用者2024-01-13

    指標足夠強大,可以指向儲存資料的位址,指標可以指向變數位址或函式。 因此,無論是呼叫資料還是呼叫函式,您都已經可以使用指標。 間接訪問指標,確保原始資料不會丟失。

  17. 匿名使用者2024-01-12

    我認為,無論有人問什麼問題,多麼簡陋,多麼簡單,都可以詳細回答,或者告訴他如何尋求幫助,在哪裡可以找到,不要憤世嫉俗,每個人都是這樣來到這裡的。

  18. 匿名使用者2024-01-11

    為了幫助你解決記憶體問題,指標在C中非常重要,雖然在C++中有&,但指標仍然非常重要。

  19. 匿名使用者2024-01-10

    C++的指標與C的指標完全相同,簡而言之,它是一種記憶體操作。

    要點如下:

    1.效率更高,無需通過變數名直接操作記憶體(值賦值等),效率要高得多。

    2.可以寫更複雜的資料結構,通俗易懂,程式設計師可以操作記憶體,當然也可以寫靈活複雜的資料結構。

    3、編寫簡明扼要、緊湊高效的程式。

  20. 匿名使用者2024-01-09

    我們都知道,C語言中的陣列指的是一類型別,陣列具體分為int陣列、double型別陣列、char陣列等。 同樣,指標的概念也指一般類別。

    資料型別、int 指標型別、雙精度指標型別、char 指標型別等。

    通常我們使用 int 型別來儲存一些整數資料,比如 int num = 97,我們也使用 char 來儲存字元:char ch ='a'。

  21. 匿名使用者2024-01-08

    儲存位址的變數稱為指標。

  22. 匿名使用者2024-01-07

    指標其實是乙個變數(只要是變數,就一定有對應的記憶體空間),但這個變數比較特殊。

    它只能儲存其他變數的位址,變數在記憶體中有位址。

    變數值:是變數本身的內容。

    一般來說,這個變數 fp 只能接受乙個指標變數的位址,所以你可以看到第 8 行在 p 前面加乙個 '&' 來取位址符號,即變數 p 的位址給 fp,fp 的內容就是 p 的位址。

    1.接下來的 9 行輸出 a 的值,可以通過變數名 a 直接找到,直接輸出 a 1 的值

    2.在第 10 行中,您會發現輸出列表引數中的 *p 是什麼意思? 這裡的“*”代表指標運算子,就是用p的內容作為位址來求位址中的值,p不是村子的a變數的位址,不是嗎?

    如果您看到第 7 行,則在 a 變數前面新增“&”以採用位址運算子,因此 *p 為 1

    3.第 11 行**fp 這裡有 2 個 '*' 符號 別擔心,因為指標運算子的繫結方向是“從右到左”,所以先計算 *fp,那麼 *fp 是什麼就是乙個 fp 的內容,找到的位址的變數值是多少,fp 儲存了 p 的位址,顯然在這個時候, *fp 最終成為變數 p 的位址。

    4.*(p變數的位址)此時,找到以p的內容為位址的對應變數,顯然是變數a。

    數字 11 就是你所說的指標。

  23. 匿名使用者2024-01-06

    輔助指標是指向指標的指標。

    例如,char *p1 ="123456";

    char **p2 = &p1;

    printf("%s", *p2);

  24. 匿名使用者2024-01-05

    通俗地說,就是你的門牌號,簡單地說,指標就是指向變數和物件的位址。

    指標可以用於多種用途,例如,如果要通過函式更改變數的值,則必須使用指標而不是值傳遞。 另外,在很多情況下,變數,尤其是物件的資料量太大,程式設計師會使用指標來製作表單引數,只需要傳遞乙個位址,大大提高了效率。

  25. 匿名使用者2024-01-04

    在C語言中,指標變數代表乙個位址,它可以是乙個變數,也可以是乙個擴充、乙個陣列等,這樣我們就可以通過指標變數訪問儲存在變數位址中的內容,或者呼叫函式等,非常靈活,具體的好處可以在程式設計中慢慢實現, 所以學習它。

  26. 匿名使用者2024-01-03

    當你在計算機中定義乙個數量時,你會在記憶體中申請乙個位址來儲存這個值,而指標是儲存位址值的變數。

相關回答
28個回答2024-05-04

就在樓上已經說過要用1了; 1 變壓器是防止觸電的,為什麼? 首先知道什麼叫電壓,電壓也叫電位差,即兩點之間的電位差[電壓]。 我們用的電壓是220V,中性線直接接地,如果碰到相線[火線]。 >>>More

18個回答2024-05-04

使用 LED 植物生長照明, 可以集中特定波長的光以平衡的方式照亮作物.

2個回答2024-05-04

NGINX 是乙個高效能的 Web 和反向伺服器,具有許多非常優越的功能: >>>More

3個回答2024-05-04

您也可以強制關閉它,但這樣所有未儲存的內容都將消失!

6個回答2024-05-04

你有沒有注意到,美國時間之前是上午或下午的上午或下午,而美國沒有 12 小時,每個大陸都不同,通常是 24 小時,例如晚上 10 點。它也被寫成晚上 22:00。你看到的只是偶爾的不規則。