關於指標應用的問題

發布 教育 2024-06-20
15個回答
  1. 匿名使用者2024-01-29

    使用線性鍊表,方法如下。

    typedef struct lnode

    int data;

    struct lnode *nex;

    lnode,*link;

    子函式的定義。

    鍊表的建立—窒息是乙個單鏈表,在陣列 d 中建立 n 個資料的鍊表。

    lnode *createlist(int d,int n)lnode *head,*p,*rear;

    int k;

    head=(lnode*)malloc(sizeof(lnode));

    head->nex=0;

    rear=head;

    for(k=0;kdata=d[k];

    p->nex=0;

    rear->nex=p;

    rear=p;

    return(head);

    刪除鍊表 - 刪除給定位置 j 處的元素,並且無法插入節點。

    int deletelist(link l,int j,int*elem)

    int k=0;

    link p=l,s;

    while(p->nex&&knex;

    k++;if(p->nex==0||j<1)printf("輸入引數錯誤,第 j 個元素不存在");}elses=p->nex;儲存已刪除節點的指標以釋放空間。

    p->nex=s->nex;

    elem=s->data;

    free(s);

    return(succ);

    return 0;

    輸出鍊表中的元素。

    void put_list(lnode *head)lnode *p=head->nex;

    while(p)

    printf("%3d",p->data);

    p=p->nex;

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

    根據問題要求編寫的C程式如下(見圖)。

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

    總結。 1. 變數的指標表示變數得到 b。

    a) 值 b) 位址 c) 名稱 d) 標誌 2,已定義 int k=2;int *ptr1,*ptr2;而 ptr1 和 ptr2 都指向了變數 k,下面無法正確執行的賦值語句是 b。

    a)k=*ptr1+*ptr2 b)ptr2=k c)ptr1=ptr2 d)k=*ptr1*(*ptr2) 3.如果指定:int *p,m=5,n;以下段正好是 d。

    c語言問題(指標)。

    親愛的,我正在研究這個問題的答案,請耐心等待。

    好。 感覺有點難做。

    請說。 1. 變數的指標表示變數得到 b。 a) 值 b) 位址 c) 名稱 d) 標誌 2,已定義 int k=2;int *ptr1,*ptr2;而 ptr1 和 ptr2 都指向了變數 k,下面無法正確執行的賦值語句是 b。

    a)k=*ptr1+*ptr2 b)ptr2=k c)ptr1=ptr2 d)k=*ptr1*(*ptr2) 3.如果指定:int *p,m=5,n;以下段正好是 d。

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

    選擇 b*(p+5) 即 p[5],由於 p 指標指向陣列 s 的第乙個位址,因此 p[5] 實際上是 p[5],即字串終止符'\0'

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

    答案是b。

    p+5) 返回乙個數值,可以直接排除 C

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

    選擇 DP [2]。

    指標 p 的初始值是陣列 a 的第乙個位址,因此對 p+2 敏感的是 a+2

    而 p[2],相當於 a[2],是元四那仙素 a[2],而不是 a[2] 的位址 (&a[2])。

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

    d 是唯一的錯誤。

    首先,a 是正確的:它是 p1b 被固定到乙個 int 指標並分配給乙個 int 指標: * operator 是查詢指標儲存的值,然後分配給 123c:

    正確:指標和指標之間的簡單操作,其結果未儲存,但操作有效。

    D錯誤:*和&運算都是右組合的,第乙個運算是&x是取x的位址,然後取x的位址中儲存的值,這個值的型別是整數值,p2是整數指標,型別不同,不能做賦值操作。

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

    A 是正確的 將 123 強轉換為指標變數 沒問題 位址是 4 表示 123 強轉換後不越界 所以它是正確的。

    d 是錯誤的,x 表示 x 的位址 *(x) 是 x 的值,不可能將 int 型別的 x 分配給 int* 型別的 p2,所以它是錯誤的。

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

    不要誤導上面的學生。

    d 是正確的。

    項A:name是陣列的名稱,即陣列的第乙個位址,陣列的位址不能更改! p->name="tom"這是更改名稱陣列的位址的嘗試;

    專案 B: . .符號的優先順序高於 *,相當於 *('b',這顯然是錯誤的;

    C:p 是一級指標,*p 等價於 a[0],a[0]->name[0] 是錯誤的;

    專案 D:高於 *,因此 d 項表示式等價於 *((p)。name))='d',並且由於 *p 等價於 a[0],因此它也等價於 *( a[0]。

    name ) = 'd',這也等價於 a[0]。name[0] = 'd'沒錯。

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

    D是對的。

    首先,我們來談談乙個,name[10] 是乙個陣列,除了陣列初始化可以賦值外,只能用迴圈逐個賦值,或者給陣列的第乙個位址賦值乙個字串(字串的第乙個位址給陣列的第乙個位址), 不能是直接賦值給陣列的字串,如:char name[10]=;沒錯;

    char name[10];

    name[10]=;不,它沒有。

    所以 p->name="tom";錯。

    然後說 d, *p)。Name 等價於 p->name,加上乙個 *,即 *(*p)name 是採用 p->name 陣列的手牌的位址,即 *(*p)

    name 是乙個指標。 因為 C 可以將字串分配給指標,*(*p)name='d'是的。

    前額。。。 我不知道,但 D 是對的。

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

    ACorrect B 中的 * 運算子的優先順序低於運算子(錯誤地輸入為 , up?) ),所以正確的參考方法是 (*p)。name[0]='b'

    c 中的 -> 運算子前面必須有乙個指標,並且 (*p) 表示變數 a[0]。

    d中有兩個錯誤,第乙個明顯是賦值的概念不明確,宣告指標同時賦值給初始值格式*p=&i,宣告後賦值賦值給格式p=&i; 這顯然是問題中的第二種情況,因此 *p 用作位址而不是變數; 其次,名稱是 char 陣列,整體賦值必須是字串的形式,單字元賦值必須下標,以指示賦值是針對元素的。

    唉,自說“運營商的優先順序低於運算子“我不記得了,d 是對的,*(p)名稱為 *(p)。name) 而不是 (*(p))。name;

    因為 name 是乙個常量指標,所以你可以用 * 來獲取位址資料,而你得到的是 char 陣列元素 name[0],所以分配值是正確的。

    A 是錯誤的:在 C 中,你不能為整個陣列分配乙個值,除非它在宣告時被初始化。

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

    讓我向你解釋一下,兄弟。

    struct sta[3],*p=a;

    本節定義乙個結構 st,宣告乙個包含 3 個 st 元素的陣列 a,並定義乙個指向陣列 a 的第乙個位址的結構指標 p。

    name="tom";

    在這個選項中,我們分析:p 是指向陣列 a 的第乙個位址的指標,那麼 p->name 本質上表示 a[0] 中 name[10] 陣列的第乙個位址,那麼它將"tom"給出指向字串陣列的第乙個位址是有效的,因此它是正確的。

    b.*'b';

    由於操作的分析”。“,所以這個表示式實際上是 *(',所以這是不對的。

    c.(*p)->name[0]='c';

    請注意,(*p) 表示 a[0],它是乙個變數而不是指標,因此您不能使用 -> 符號,錯誤。

    d.*(p).name='d';

    這個錯誤是顯而易見的,(*p) 已經表示了乙個結構變數,新增乙個 * 符號是不可描述的。

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

    A是對的。

    p->name="tom";指 a[0]。name="tom"

    p,name[0]='b';逗號錯了,他想表達的應該是(*p)。name[0]='b',即 a[0]。name[0]='b'

    p)->name[0]='c';你不能使用箭頭,你應該寫(*p)。name[0]='c';即 a[0]。name[0]='c'

    *p).name='d',.多乙個 * 符號,*p 已經表示 a[0],因此無需再新增乙個 *

    這就是我的理解,你可以參考它。

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

    答:正確。

    是指點運算子,並且引用正確。

    b,因為“......“應替換為 (*p)。name[0]='b';

    C、D將不作解釋,歡迎個人意見提出建議。

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

    d 是正確的,*p 表示結構陣列中指向的第乙個元素,然後將 name 成員陣列的第乙個元素分配給 d。

相關回答
5個回答2024-06-20

flag?b[i]>b[j]:b[i]b[j],不執行第三句,在這種情況下按公升序排序; 當 flag = 0 時,執行第三句 b[i]。 >>>More

29個回答2024-06-20

3x+2y-5x-7y

有理數的混合加法、減法和運算。 >>>More

24個回答2024-06-20

#include

typedef 結構 linknode 單向鍊表的節點型別 >>>More

28個回答2024-06-20

沒錯。 我們不能吃細菌,呵呵。

11個回答2024-06-20

從中國出發,經南中國海到新加坡,停靠補給考察新加坡,體驗島國風光,然後穿越馬六甲海峽到達印度洋斯里蘭卡首都科倫坡,然後經過紅海和蘇伊士運河到達埃及亞歷山卓港,再穿越直布羅陀海峽,參觀摩洛哥著名的港口城市卡薩布蘭卡, 然後北上穿過英吉利海峽到達挪威首都奧斯陸,然後到達北冰洋的不凍港口城市摩爾曼斯克,然後轉向冰島首都雷克雅未克。然後到美國紐約,然後通過巴拿馬運河訪問加勒比海的海地太子港,然後向南到智利瓦爾帕萊索港,然後向南參觀中國南極長城科研站,然後向西到紐西蘭奧克蘭