高手解答一下這段c 程式中的疑問

2022-11-27 14:35:22 字數 1049 閱讀 1442

1樓:

你程式功能是找出子串的位置

問題一:完全可以,效果一樣的。char a是定義一個字元型陣列;char *a是定義一個指向字串的指標變數,a可以當做陣列名使用,例如定義:

char *a;可用a[0]訪問該字串的第一個字元。

問題二:你把**寫成下列形式,好理解

int fun(char *a,char *b)

是這樣:兩個for語句如果能執行到return (i),則該函式執行到此終止,不會執行下面的return (0)了;如果兩個for語句不能執行到return (i),才執行return (0)語句。

「for(i=0;b[i];i++)只執行了一次」,它下面還有個for呢,不是一下就到了return (0)。

問題三:如果if()的執行語句只有一條,不用加(加上也不會報錯,只是多餘);如果執行語句兩條以上,必需加上。for語句也一樣。例如:

if(條件)

x=y+3;//只一條執行語句

if(條件)

如果你的問題還沒解決,請補充說明,否則請採納我的答案,呵呵

2樓:匿名使用者

1、當然是可以的了,陣列做為型數,陣列將退化為指標,對形參的改變就是對實參的改變,效果與指標一樣!

2、沒什麼不對的呀,後面那個return (0),是雙重迴圈外面的語句呀,假如雙重迴圈執行完了,還沒有找到子串,就說明查詢失敗了返回0!不過返回return (i); 最好改成return (i+1);因為我們習慣叫的位置要比陣列對應的位置加1,

3、如果if else 只有一個語句可以不加,但是要是有一個語句以上的語句塊就非得加不可,否則只會執行第一個語句!一般建議if else寫的時候都要帶{}的。

3樓:匿名使用者

問題1:可以,實質上上一樣,但最好指標用*,陣列用

問題2:若two中有字串one,則返回one在two中的第一個下標,否則返回0,樓主用f9,f10除錯一下就知道是不是返回一次拉

問題3:if條件下若只執行一條語句則可不用{},若要多個語句,要{},否則只執行if後的第一個語句

c 請高手幫忙指教一下這個程式的疑問,謝謝

virtual void draw const 0 這裡的void不就是說明無返回型別嘛,我如果在這裡不寫void為什麼就通不過啊?最重要的是,我如果在這裡不用純虛擬函式,而是virtual void draw const 這樣為什麼不可以呢?無返回型別也必須要寫void 這個是普通的格式,純虛擬函...

關於c程式設計問題,麻煩高手解答一下

string lines system.io.file.readalllines c root.ini encoding.default string names new string lines.length float scores new float lines.length for int ...

c程式設計題不會了求高手解答一下

如下 供參考.using system using system.collections.generic using system.linq using system.text namespace csconsole static void outputstrings string str1 sta...