數組
元素類型 數組名稱[元素個數]
二維數組: 數組中的每一個元素又是一個數組, 那么這個數組就稱之為二維數組
元素類型 數組名稱[一維數組的個數][每個一維數組的元素個數];
元素類型 數組名稱[行數][列數];
元素類型: 說明二維數組中每個一維數組存儲什么類型的數據
一維數組的個數: 說明二維數組有多少個元素
每個一維數組的元素個數 : 說明二維數組中每一個一維數組的元素個數
// 如何遍歷二維數組
// 思路: 1.取出二維數組的每一個元素(取出二維數組中的一維數組)
// 2.遍歷一維數組
// 數組的名稱就是數組的地址
// &nums == nums == &nums[0]
// 數組作為函數的參數傳遞, 修改形參的值會影響到實參
字符串
用雙引號引起來的就是字符串
printf("Hello, World!\n");
// 如何定義字符串變量, 由于字符串是同一種類型的數據組成, 并且是有序的
// 注意: 字符串變量和普通的字符數組有一定的區別
// C語言規定, 字符串必須以\0結尾(作為字符串的結束符號), 所以字符串變量的元素個數比字符數組的元素個數多一個 \0
字符串用法
1.如何輸出字符串
// 1.1可以使用printf的%s占位符來輸出
// 弊端 : 如果想要換行, 必須加上\n
// 優點 : 可以自定義格式化需要輸出的字符串, 也就是可以按照我們需要的格式來輸出
// 1.2可以使用puts函數來輸出
// 優點: 可以自動換行
// 缺點: 不可以自定義格式, 只能原樣輸出
2.如何輸入字符串
//2.1利用scanf接收字符串的注意點
// scanf接收字符串, 會以空格 , tab, 回車作為結束符號, 也就是說利用scanf接收字符串時, 字符串中不能出現空格, tab, 回車
// 2.2利用gets接收字符串
// warning: this program uses gets(), which is unsafe.
// 如果使用gets接收字符串, 系統會提示我們正在使用一個不安全的方法接收字符
// 優點: 如果利用gets接收字符串 , 可以在字符串中輸入空格, tab
3.如何計算字符串的長度
// strlen的原理: 從傳入的地址開始逐個取出字符串, 每取出一個就讓計數器+1. 直到遇到\0為止
// size_t size = strlen(str); // 計算出來的結果不包括\0
字符串拼接
原理 : 首先遍歷第一個字符串,直到遇到\0為止, 然后取出第二個字符串中的字符, 從\0的位置開始添加, 添加完畢之后再在最后添加一個\0
// dest : 目標 src : 源
// 將src中的數據拼接到dest后面
// 注意: 要想使用字符串拼接函數, 那么dest必須是一個數組, 并且數組的長度必須大于拼接之后的長度