數(shù)組:(長度的計算)
補充:數(shù)組長度=sizeof(arr)/sizeof(arr[0])
注意:?。?!不適用于當(dāng)arr 充當(dāng)形參時(函數(shù)傳參)!?。?/p>
因為函數(shù)傳遞的是int arr[0] 的地址(指針),而不是數(shù)組內(nèi)容,
若在此情況計算整形數(shù)組長度
????????在X86系統(tǒng)下,指針大小為4,所以計算結(jié)果為4/4=1;
????????在X64系統(tǒng)下,指針大小為8,所以計算結(jié)果為8/4=2;
函數(shù)內(nèi)以此公式計算數(shù)組的長度均為錯誤答案,所以數(shù)組在傳參時,應(yīng)增加計算的數(shù)組長度值;
指針引用數(shù)組:
一維數(shù)組名表示整個數(shù)組:
在同一個函數(shù)定義的數(shù)組下 ?。?!文章來源:http://www.zghlxwxcb.cn/news/detail-837988.html
- sizeof(arr):表示數(shù)組的全部字節(jié)數(shù)
- &arr +1 : 表示數(shù)組本身加整個數(shù)組占字節(jié)數(shù)的地址
數(shù)組:int arr[10];
- &arr[0],表示下標(biāo)為零的該數(shù)組地址
- [ ]內(nèi)數(shù)字表示數(shù)組的偏移量
- 而任意 arr[] 僅代表數(shù)組的數(shù)值
- 數(shù)組名表示整個數(shù)組,表示地址
以下是幾種指針和數(shù)組之間相互轉(zhuǎn)換:文章來源地址http://www.zghlxwxcb.cn/news/detail-837988.html
- int *p=&arr[0] 將數(shù)組的起始地址賦給指針p
- p++ == arr[i++];
- (*p+i) == arr[0+i];
- (*p+i) == p[i];
- *(arr+3) == arr[0+3];
- arr[i] == p[i];
- [arr]i == [p]i;
- 當(dāng)指針被賦值數(shù)組的地址時,如果數(shù)組賦值時的下標(biāo)不為0,則指針可以轉(zhuǎn)換成數(shù)組的形式,且:下標(biāo)可為負(fù)數(shù),此情形在數(shù)組中不存在
- 當(dāng)一個參數(shù)需要調(diào)用函數(shù)來修改值時:傳指針解引用但是數(shù)組 arr[i] 下標(biāo)自帶解引用-> *(arr+i)= arr[i];所以數(shù)組在函數(shù)傳參時無返回值也能修改值的變化
字符串常用函數(shù)
- strcpy:字符串拷貝(復(fù)制)
- strlen:字符長度,不包括'\0'
- strcat:字符串連接
- strcmp:字符串比較
- strstr:字符串查找
- sprintf:把數(shù)據(jù)輸出到指定的字符數(shù)組 .非常常用
-
- :printf("%d",a)
- ->sprintf(char buff[10],"%d",a);
- 把數(shù)據(jù)a作為字符輸入字符串,
- 凡是可以輸出到屏幕上的數(shù)據(jù),都可以通過sprintf()輸入到字符串等其他保存,
- gets:被廢除,不允許使用,不安全
- 不安全:數(shù)組越界
- fgets(),從鍵盤獲取指定數(shù)量的內(nèi)容,保存到指定地址
到了這里,關(guān)于C語言:數(shù)組、字符串知識點整理:的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!