我覺得記憶體模型大概是如此:
如果改變strings++那麼指標將會指向第二行,如果使用(*strings)那麼指標將會向後移動一列。
在find_char1函式中:
char *string;
while((string = *strings++)!=null)
} 在 find_char2函式中:
while(strings!=null)
strings++;
但是最後的結果執行函式一併沒有改變?
由於指標陣列中每一行型別是陣列並沒有指標控制,而在每乙個指標中卻有指標控制。所以*(*strings)便改變了
比如對於定義中的*string[2];
輸出第乙個陣列第二個陣列:
printf(「%c\n」,*string[0]+1);
int find_char1(char **,char);
int find_char2(char **,char);
int main(int argc, char *argv)
; find_char1(string,』1』);
printf(「\t%s\n」,*string);
find_char2(string,』1』);
printf(「\t%s\n」,*string);
system("pause");
return 0;
int
find_char1(char **strings ,char value)
} return 0;
}int
find_char2(char **strings,char value)
strings++;
} return 0;
}
C語言 指標例程 《C和指標》例程6 3 注釋
c和指標 的107頁 程式6.3 在一組字串中查詢 版本2 程式如下 include include define true 1 define false 0 intfind char char strings,char value 1 strings 5 return false int main...
C和指標開頭的程式
include include include define max cols 20 最大的列數 define max input 1000 輸入最大長度 int read column numbers int columns,int max void rearrange char output,c...
c 字首和與差分
1 簡介 字首和也是乙個在比賽中比較實用的方法,他能很快得求出乙個區間的和,速度為o 1 一維的字首和陣列sum i 就是存的是前i個數的總和。根據這個公式我們很容易得到x到y區間的總和就是sum y sum x 二維的字首和如sum i j 是指 i,j 點的左上角的矩陣的各數總和,及0 i行且0...