第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個函數(shù)的輸出相當(dāng)于沒什么變化,我大約知道是這個結(jié)果,求解釋具體的原理= =

這個函數(shù)的輸出相當(dāng)于沒什么變化,我大約知道是這個結(jié)果,求解釋具體的原理= =

C PHP
哆啦的時光機(jī) 2022-07-27 16:15:33
#include<stdio.h>void changeSeason(char*);void main(){char *season[]={"Spring","Summer", "Autumn", "Winter"};char *ps=season[0];changeSeason(ps);printf("Now the season is %s",ps);}void changeSeason(char*p){p++;++p;}
查看完整描述

3 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個贊

都說是形式參數(shù),被引用是不改變的
changeSeason被調(diào)用時 生成一個char* p 然后賦值讓 p=ps
再然后,在函數(shù)里面對p進(jìn)行什么操作都影響不了ps了,結(jié)果就沒有什么變化

查看完整回答
反對 回復(fù) 2022-08-01
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個贊

函數(shù)是值傳遞(單向傳遞,指針也是,即地址傳遞也是單向傳遞)
changeSeason(ps);將ps的地址傳遞給p
p++,p--是形參p的變化,與ps無關(guān),
p是函數(shù)另外新建的指針變量(調(diào)用函數(shù)創(chuàng)建,函數(shù)結(jié)束釋放)
類比int m,n=1;m=n; m++;不會影響n的變化一樣。

但(*p)++就有影響了。因?yàn)閜與ps指向地址相同,即"Spring"中‘S'的地址
*p與*ps就是字符'S',(*p)++等價于’S'++(當(dāng)然本題中是錯誤的,‘S'常量不能++),傳遞地址的作用就體現(xiàn)在*p的用法上(可以改變傳入地址指向的變量的值,相當(dāng)于間接改變變量)。

查看完整回答
反對 回復(fù) 2022-08-01
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個贊

當(dāng)調(diào)用changeSeason(ps);,你可以理解為ps這個指針的值,新建了一個副本傳給了(void changeSeason(char*p))這個里邊的p,p是一個ps的副本,而不是ps本身,所以p怎么運(yùn)算都沒有改變ps這個值本身。
不過可以對ps指向的對象進(jìn)行操作。不過這里你定義的數(shù)組不能用了。
#include<stdio.h>
void changeSeason(char*);
void main()
{
char season[]= {"Spring"};
char *ps=season;
changeSeason(ps);
printf("Now the season is %s",ps);
}
void changeSeason(char*p)
{
*p = 'A';
}
這個時候輸出的結(jié)果是Apring


查看完整回答
反對 回復(fù) 2022-08-01
  • 3 回答
  • 0 關(guān)注
  • 177 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號