1、在C語言中,字符串是以字符數(shù)組方式保存的,于是字符串數(shù)組可以用二維字符數(shù)組存儲。輸入時,每次輸入字符串數(shù)組的一個元素(一行),根據(jù)需要,使用scanf或gets進行輸入。
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,先為黃岡等服務建站,黃岡等地企業(yè),進行企業(yè)商務咨詢服務。為黃岡企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
2、看你的代碼。你問題并不在數(shù)組傳入。你函數(shù)mymd5接收password數(shù)組,mymd5的password數(shù)組變量和外部函數(shù)的password地址相同,所以改變其中外部函數(shù)的數(shù)組也改變。
3、C語言數(shù)組輸入是相同類型的、數(shù)量有限的若干個變量通過有序的方法組織起來的一種便于使用的形式。數(shù)組屬于一種構(gòu)造類型,其中的變量被稱為數(shù)組的元素。數(shù)組元素的類型可以是基本數(shù)據(jù)類型,也可以是特殊類型和構(gòu)造類型。
4、在C語言中,有兩個函數(shù)可以讓用戶從鍵盤上輸入數(shù)組數(shù)據(jù),它們分別是gets()和scanf()。scanf()是通過格式控制符%s輸入數(shù)組字符串,除了字符串,還能輸入其他類型的數(shù)據(jù);gets()是直接輸入數(shù)組字符串,并且只能輸入字符串。
5、那么,在事先不知道數(shù)組規(guī)模下,就要靠輸入,來確定數(shù)組大小了。重點在于,要開辟多大的數(shù)組來存 一般有這么幾種情況 1 直接開一個足夠大的。
1、屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因為數(shù)組名代表這個數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標時,就是找到這個數(shù)組第i號元素的地址進行修改的。所以是第于是地址傳遞。
2、因此在數(shù)組名作函數(shù)參數(shù)時所進行的傳送只是地址的傳送, 也就是說把實參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實在的數(shù)組。實際上是形參數(shù)組和實參數(shù)組為同一數(shù)組,共同擁有一段內(nèi)存空間。
3、下面例子,作為 指針傳遞 和 行指針傳遞。
4、傳數(shù)組給一個函數(shù),數(shù)組類型自動轉(zhuǎn)換為指針類型,因而傳的實際是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三種函數(shù)聲明完全等同。實際情況是,數(shù)組做參數(shù),完全無法按值傳遞。
1、下面例子,作為 指針傳遞 和 行指針傳遞。
2、二維數(shù)組傳遞給函數(shù)的時候,有兩種方式,一種是a[][6],一種是(*a)[6],這里的6是不能省略的,不然編譯器不知道如何通過加多少來偏移這個指向數(shù)組的指針。
3、name*)[size])\x0d\x0a \x0d\x0atype是你要定義的類型,fun是函數(shù)名,name是在函數(shù)中二維數(shù)組的名字,\x0d\x0asize是二維數(shù)組第2維的長度。\x0d\x0a這樣調(diào)用這個函數(shù)只需要把二維數(shù)組函數(shù)名傳遞就可以了。
4、屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因為數(shù)組名代表這個數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標時,就是找到這個數(shù)組第i號元素的地址進行修改的。所以是第于是地址傳遞。
5、不可能達到目的。因為C語言中沒有引用這類型,C++才有。另,C/C++都不支持傳遞數(shù)組,只能傳遞數(shù)組的首元素或行指針,所以即使是C++,也只能傳遞數(shù)組指針的引用,而不可能傳遞數(shù)組的引用,因為數(shù)組沒有引用。