為什麼有時你可以直接在C中輸出指標,但你沒有得到位址如下

發布 科技 2024-08-16
14個回答
  1. 匿名使用者2024-02-01

    首先要做的是找出 char *p,這是乙個指標陣列。

    也就是說,陣列中的每個元素都是指向乙個char型別字元的指標,那麼p[i]就是這個指標,因為陣列名也是乙個位址,而strcpy的引數要求是乙個陣列或者乙個指標,而*p[i]是指標指向的乙個字元,是乙個特定的值, 例如,不是指標,也不是位址。

    char *p[3]=;

    for(i=0;i<3;i++)

    printf("%s",p[i]);

    輸出為:

    abcdef

    如果 printf 函式更改為 printf("%c",*p[i]);輸出如下。 adg

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

    char *a = “asdf”;此時,s 已經是字串的第乙個位址,相當於 a[5];

    printf(“%s”,a);此時,第乙個位址是必需的,相當於 puts(a);

    同理,strcpy 是乙個字串複製函式,需要的引數是字串的第乙個位址,*p[i] 和乙個特定的值,而不是指標型別的位址......

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

    這是因為當您使用 printf() 函式輸出字串時,您需要將指標傳遞到字串;

    strcpy() 函式也用於傳入乙個字串指標;

    printf("%d",a);

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

    如果設定 printf("u%",a);輸出是初始位址。

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

    指標的工作原理如下:計算機中的記憶體就像乙個抽屜(一兆位元組的記憶體相當於 100 萬個抽屜),每個抽屜都有乙個用於儲存資料的編號。

    為了便於使用,編譯器允許我們在編寫程式時命名抽屜(而不是使用抽屜的編號),這是變數名稱。 例如,讓我們在程式中定義 char c; 這時,系統會幫我們找到乙個空閒的抽屜(比如抽屜編號981),名為C,用來存放乙個字元變數。

    將來,只要我們在程式中使用變數 c,系統就會知道我們要對 981 抽屜中的資料進行操作。

    什麼是指標? 指標是我們申請的空抽屜,我們輸入的不是資料,而是數字。 假設我們請求乙個字元指標:

    char *ch=&c;此時,ch是變數c的位址(即981),其中&是位址,即變數c的位址,而不是值。 *ch 是 ch 指向的值。

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

    指標是你的名字,&運算子是你的身體,指標是叫你的名字,讓自己或別人用你的名字工作。 ,別人忙著,位址就是你用別人的名字工作的身體。

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

    指標的全稱是指標變數,如:char *pc ; PC 是乙個指標變數,我曾經稱他為指標。

    這些習慣名稱並不能真正反映它們的實際含義! 讓我們看一下定義:

    指標變數(定義):儲存位址的變數稱為指標變數。 指標變數是乙個特殊變數,它不同於一般變數,一般變數儲存資料本身,而指標變數儲存的是資料的位址(我們可以根據這個位址得到資料的值)。

    位址是指記憶體位址,當資料和應用程式儲存在記憶體中時,記憶體是有編號的,這個數字就是我所說的位址。

    C語言中的任何資料(包括常量、變數、函式等)在應用執行時都有自己的記憶體位址,我們通常通過位址來訪問它們。

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

    通俗地說,指標是乙個位址,但指標是乙個變數,可以分配給不同的位址,而位址在記憶體中,不能更改。 指標指向的位址表示該位址中的值,例如 *p,其中 p 表示位址,*p 表示位址中的值。

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

    指標是乙個變數,它的值是乙個位址,它儲存的位址的值可以通過指標訪問。 指標是C語言的精髓,不能用三個詞來解釋清楚。 如果你仔細閱讀了《C and Pointers》這本書,你應該能夠掌握它。

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

    好好看一下C語言書的指標章節,找到幾個典型的問題來訓練應該不是什麼大問題。

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

    例如,1:int a=10; int *p;p 被宣告為具有自己的記憶體位址的指標,該位址可用於指向當前不是指標的 int 變數。

    p=&a;這意味著指標 p 指向 int 變數 a 的位址。 指標 p 具有儲存在記憶體中的位址。 &是位址計算,&a是表示式,計算簡單變數a的位址。

    printf("%d",*p);此 *p 是指標 p 指向的位址中儲存的值,即 a 的當前值。

    例如 2: int a[5]=; int *p;p 被宣告為具有自己的記憶體位址的指標,該位址可用於指向當前不是指標的 int 變數。

    p= &a[i]; 這意味著指標 p 指向 int 一維陣列 a 型別的元素 [i] 的位址。

    p= &a[0]; 這意味著指標 p 指向 int 一維陣列 a 型別的元素 [0] 的位址。

    p=&a;這意味著指標 p 指向 int 一維陣列 a 的第乙個位址的位址。

    printf("%d",*p);此 *p 是指標 p 指向的位址中儲存的值,如果 p= &a[i];

    然後輸出 A[i] 的當前值。 前面是 p=&a[0]; 或 p= a; 然後輸出 A[0] 的當前值。

    為什麼要宣告指標型別? A,指標型別僅在需要時宣告,不需要時不宣告。 C C++ 在位址操作時使用指標,您需要宣告指標型別變數。

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

    1. &a 是 A 變數的記憶體位址,邏輯上將這個位址值儲存在 b 變數中是沒有問題的。

    但是,儲存位址有乙個特殊型別的 box (int*) 用於儲存位址,b 是用於儲存整數的 box (int) 的型別,因此應進行顯式(強制)型別轉換以變為:

    1 int a=100;

    2 int b=(int)&a;

    2. 定義變數語句中的 int *b 和表示式中的 *b 的意思不同。 int *b 和 int 中的 * 一起表示整數的指標型別,您可以將 int* 視為乙個整體,它表示乙個型別。 *b 在表示式中是指標操作,它表示位址中的值,由 b 的值(b 指向的位址中的值)表示。

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

    在選項 b 中的位址上加 5 不僅僅是乙個數字加 5。

    例如,在 32 位計算機上(指標為 4 個位元組),p1 + = 5 實際上將 4 * 5 = 20 新增到該位址編號

    c、p1、p2 是 char*,但 &p2 是 char**,因此 c 的賦值型別不正確。

    B是對的。

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

    b:P1 和 P2 是字元指標變數,根據所引用單元的變數型別的長度自動加減。

    C:&P2-- 是乙個 char 變數,分配給指標變數 p1,因為兩邊是不同型別的,一定是錯的。

    D:指標變數的乘法應該是木製的。

相關回答
6個回答2024-08-16

首先要知道的是,在 C 語言中,函式定義:

型別:函式 name()。 >>>More

14個回答2024-08-16

首先,右鍵點選工作列上的輸入法圖示,選擇“設定”,進入“文字服務和輸入語言”設定頁面。 >>>More

5個回答2024-08-16

定義不可變常量時。

5個回答2024-08-16

在很多情況下,損壞的不是內部閥體,而是內部頑固的汙垢和雜質,特別是在內部閥體內,汙垢和雜質堆積形成堵塞,導致無法有效調節油壓,導致出現停滯、衝擊和打滑的問題。 同時,齒輪箱的高溫問題也不容忽視。 根據自動變速器維修協會的說法,它被稱為 >>>More

6個回答2024-08-16

分析:電腦卡慢的原因有很多,比如開機時自啟動程式太多、安全軟體後台檢測或資料庫公升級、病毒感染、硬碟碎片過多、長時間執行多個大型軟體導致執行記憶體不足、使用Thunderbolt全速**等。 >>>More