讓我們說,在英文字母從1 A = 1 A到Z具有值開始,B = 2,C = 3等等。編寫一個調用函數的程序,該函數接受一個人的姓名,該人的姓名是常量字符數組,並返回一個帶有Alphapets總和的整數值。將const的數組名稱傳遞給const char數組有什麼好處?c編程ASCII值
回答
一個優點在於,一個陣列中的元件是由改變其值的保護。
例如,這裏是簡單的代碼。
int Your_function(const char * a)
{
a[3] = 'A'; // this statement causes compile error.
// do something
return 0;
}
假設其他人提供了一個函數,該函數使用非const char *
並執行該任務。什麼功能實際上實行的是這樣的:
int get_int_sum(char *name)
{
int sum;
//codes to calculate sum of alphas
name[0] += 1;
//continue
return sum;
}
當我打電話使用
char my_name[] = "Yu Hao";
int reuslt = get_int_sum(my_name);
即使我得到了我想要的結果的功能,my_name
更改爲"Zu Hao"
沒有我的注意。但是,如果函數的原型爲
int get_int_sum(const char*name)
我確定我傳遞的字符串不會被修改。
@MrLister也許它會改成'「Zu Hao」',因爲我們給字符值加1而不是減1。但誰在乎?關鍵是它可以改變,我們不希望這樣。此外,爲什麼它會「返回垃圾」? – 2013-07-06 06:18:38
@MrLister由於C標準並不保證'Z'的字符代碼在Y之後出現,所以對修改後的字符串進行辯論毫無意義。另外,你真誠地**認爲'//代碼計算alphas的總和'部分在這個例子中代表什麼? – 2013-07-06 06:22:04
@Mr李斯特右。但這顯然是一個錯字。 –
- 1. 輸出ASCII值C++
- 2. 程序集編號爲ascii
- 3. 在C#.NET中編碼非ascii字符
- 4. C編程 - 不計算值
- 5. C編程;左值要求
- 6. 編輯bash中字符的ASCII值
- 7. 編碼爲單字節擴展ASCII值
- 8. 彙編 - 將值轉換爲ASCII
- 9. C編程:從標準輸入讀取所有ascii字符
- 10. 編碼$爲ASCII
- 11. Javascript Ascii編碼
- 12. ASCII藝術(數值)輸出C++
- 13. 打印的ASCII碼值,並用C
- 14. 轉換的整數ASCII值C++
- 15. C++ ::將ASCII值轉換爲字符串
- 16. 轉換INT爲char *給ASCII值C++
- 17. C++字符的ASCII值到字符串
- 18. 在String.replace(「\ c」,「」)什麼ASCII值是「」?
- 19. 完全用ascii編碼的exe程序
- 20. ASCII英文文本/ ASCII C程序文本問題
- 21. C#ASCII或Unicode
- 22. ASCII編碼和UNICODE編碼
- 23. ASCII值爲Nothing
- 24. Ascii值計算
- 25. Java Ascii值
- 26. 在C使用ASCII字符++程序
- 27. ASCII /計數打印C程序?
- 28. 編碼ASCII文件
- 29. Tcl - 編碼convertfrom ascii
- 30. Ascii to html編碼
那麼,你會如何傳遞一個只讀字符串? – 2013-07-06 05:56:15
這不是做你的功課。請告訴我們,你到目前爲止所嘗試過的,以及你卡在哪裏。 –
我們可以通過給大大簡化這一程序'了'65,而不是1 –