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

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

有關指針傳入函數(shù)的問題

有關指針傳入函數(shù)的問題

C
穩(wěn)做王者 2016-12-29 00:09:04
#include<stdio.h> void func(char *c) { c=c+2; } void main() { char *s="mincomputer"; func(s); puts(s); } 這個程序的輸出的為什么還是mincomputer而不是incomputer呢?
查看完整描述

3 回答

已采納
?
望遠

TA貢獻1017條經驗 獲得超1032個贊

#include<stdio.h>?
void?func(char?*c)
?{
?????*c=*(c+2);?
?}?
?void?main()?
?{?
?????char?*s="mincomputer";?
?????func(s);?
?????puts(s);
?}

ps這才是你想要的結果,c=c+2;僅僅是將指針變量c的指向往后移了兩個字符,指向了字符串的第三個字符,并沒有修改原數(shù)據(jù)。 ? ? ? ? ? ? ? ? ? ? ? ? ? ?

查看完整回答
反對 回復 2016-12-29
?
Yexiaomo

TA貢獻152條經驗 獲得超157個贊

很明顯不會改變的,?

在 main函數(shù)中,你定義了 char * 類型

但是你在 func函數(shù)的參數(shù)類型中 也定義了 char * 類型

傳參數(shù)時,僅僅是復制一份,并未把地址傳過去

修改后代碼如下

#include<stdio.h>?
void?func(char?**c)?{?
	*c=*c+1;
}?
int?main()?{?
	char?*s="mincomputer";?
	func(&s);?
	puts(s);?
	return?0;
}


查看完整回答
反對 回復 2016-12-29
  • 望遠
    望遠
    地址已經傳過去了,只是調用函數(shù)里面沒有修改字符數(shù)據(jù)哦。
  • 望遠
    望遠
    地址已經傳過去了,只是調用函數(shù)里面沒有修改字符數(shù)據(jù)哦。
  • 望遠
    望遠
    地址已經傳過去了,只是調用函數(shù)里面沒有修改字符數(shù)據(jù)哦。
點擊展開后面2
  • 3 回答
  • 1 關注
  • 1174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號