欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2034|回復: 10
收起左側

在網上看到一道C語言指針題,求分析

[復制鏈接]
ID:445798 發表于 2019-9-27 15:37 | 顯示全部樓層 |閱讀模式
#include<stdio.h>
int *p;
main()
{
int a=1,b=2,c=3;
p=&b;
pp(a+c,&b);
        printf("(1) %d %d %d\n",a,b,*p);
}
pp(int a,int *b)
{
int c=4;
*p =*b+c;
a=*p-c;
        printf("(2) %d %d %d\n",a,*b,*p);
}
結果是: (2) 2 6 6
            (1) 1 6 6




我認為是 (2) 2 2 6
              (1) 1 2 6


大家說說看。
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:235200 發表于 2019-9-27 18:01 | 顯示全部樓層
(2) 2 6 6
(1) 1 6 6
這個結果是對的
回復

使用道具 舉報

ID:235200 發表于 2019-9-27 18:07 | 顯示全部樓層
主程序調用pp(a+c,&b);時 即pp(4,2);  在子程序中*p=2+4=6 , a=6-4=2 ,子程序中的*b是b變量的地址,通過這一條語句*p =*b+c;已經改變為6了
回復

使用道具 舉報

ID:617312 發表于 2019-9-27 19:13 | 顯示全部樓層
我沒仔細看代碼,但我看到p=&b;而且沒有其它地方對p進行賦值,即p中存的是b的地址,所以*p和b的值應該是相同的,所以你的記過應該不對。
回復

使用道具 舉報

ID:617312 發表于 2019-9-27 19:15 | 顯示全部樓層
還有你提問時,你說你認為結果是什么,你應該把你這么認為的原因也寫出來,方便別人給你分析,如果有問題更容易指出來。
回復

使用道具 舉報

ID:577820 發表于 2019-9-27 20:01 | 顯示全部樓層
我得到的結果也是
(2) 2 6 6
(1) 1 6 6
看了樓主的結果,只能說樓主對指針理解的不夠透徹
回復

使用道具 舉報

ID:592807 發表于 2019-9-27 21:38 | 顯示全部樓層
你p=&b的時候就已經確認國*p=b關系了,
回復

使用道具 舉報

ID:149144 發表于 2019-9-27 22:56 | 顯示全部樓層
我這個人比較懶,不喜歡算算算……

就這樣啊

就這樣啊
回復

使用道具 舉報

ID:142699 發表于 2019-9-28 00:22 | 顯示全部樓層
主要是取了地址,進入函數以后一起改變了,所以答案是沒錯的
回復

使用道具 舉報

ID:370779 發表于 2019-9-28 10:59 | 顯示全部樓層
有圖有真相
1.png
回復

使用道具 舉報

ID:498638 發表于 2019-9-28 11:05 | 顯示全部樓層
指針指向了那個變量,所以是266和126
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表