網站首頁 編程語言 正文
1.一維數組
數組的定義: 數組是一組相同類型元素的集合
a.一維數組的創建
數組的創建格式為: 數組的類型 數組名[ 常量表達式] ;
關于數組創建易錯點:
b.一維數組的初始化
類似于給整型變量初始化的過程:
int a=2; int b=5; int c=66;
關于數組初始化易錯點:
字符串的結束標志是 \0
特別注意:數組長度和字符串長度不是一個東西
#include <stdio.h> #include <string.h> int main() { int arr1[3] = { 1,2,3 }; //數組有1、2、3這三個元素 int arr2[4] = { 1,2,3 }; //數組有1、2、3、0這四個元素 int arr3[4] = { 0 }; //數組有0、0、0、0這四個元素 char ch4[5] = "dat"; //數組有d、a、t、\0、0這五個元素 char ch5[] = "dat"; //數組有d、a、t、\0這四個元素 char arr6[] = "abc"; //數組有a、b、c、\0四個元素,該數組長度為3,字符串長度為3 char arr7[] = {'a','b','c'}; //數組有a、b、c三個元素,該數組長度為3,字符串長度為隨機值 printf("%d\n", strlen(arr6));//3 printf("%d\n", strlen(arr7));//隨機值 printf("%s\n", arr6);//得abc printf("%s\n", arr7);//abc亂七八糟 return 0; }
c.一維數組的使用
訪問數組中的某個元素用到[ ]下標引用操作符, 數組是使用下標來訪問的,下標是從0開始
計算數組的大小如下代碼:
#include <stdio.h> int main() { int arr[10] = {0}; int sz = sizeof(arr) / sizeof(arr[0]); printf("則數組的大小為%d\n",sz); return 0; }
d.一維數組在內存中的存儲
一維數組在內存中連續存放
數組的存放地址由低到高變化,看代碼:
2.二維數組
一維數組長這樣:
int arr [ 10 ]= { 0 } ;
二維數組長這樣:
int arr [ 3] [4 ]= { {1,2}, {3,4}} ;
a.二維數組的創建
int arr1 [ 3 ] [ 4 ] ; 三行四列
char arr2 [ 4] [ 4 ] ; 四行四列
float arr3 [ 3 ] [ 6] ; 三行六列
特別注意:二維數組中,行可以省略,如:
int arr [ ] [ 4 ] ;
b.二維數組的初始化
int arr1 [ 3 ] [ 4 ] = {1,2,3,4,5};
第一行: 1 2 3 4
第二行: 5 0 0 0
第三行: 0 0 0 0
char arr2 [ 4] [ 4 ] ={ {1,2} , {3,4} } ;
第一行: 1 2 0 0
第二行: 3 4 0 0
第三行: 0 0 0 0
第四行: 0 0 0 0
float arr3 [ 3 ] [ 6] = { {1,2} , {3,4} , {5,6,0,2} } ;
第一行: 1 2 0 0 0 0
第二行: 3 4 0 0 0 0
第三行: 5 6 0 2 0 0
特別注意:未完全初始化的部分都是0
c.二維數組的使用
和一維數組相同,二維數組的使用也是通過下標的方式實現, 行和列的順序,以及下標的的順序不能錯哦
d.二維數組在內存中的存儲
通過下圖,我們發現:
二維數組在內存中也是連續存儲的
數組的存放地址也是由低到高變化
3.數組越界
數組的下標是有限制的
規定:數組下標從0開始,最后一個元素下標為n-1
看以下代碼:
若i=3;
則有0 1 2 3 四個下標就有四個元素,
若j=4;
則有0 1 2 3 4 五個下標就有五個元素
4.數組作為函數參數
這里用個冒泡函數:將元素排序,來舉例
這個代碼通過調試,才能得出效果
#include <stdio.h> void bubble_sort(int arr[], int sz) { int i = 0; for (i = 0; i < sz - 1; i++) { int j = 0; for (j = 0; j < sz - i - 1; j++) { if (arr[j] > arr[i]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } } int main() { int arr[] = { 1,3,6,8,2,9 }; int sz = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz); return 0; }
5.數組名
數組名就是首元素的地址(倆個例外)
1.sizeof(數組名)計算的是數組的大小
2.&數組名,取出的是數組的地址
原文鏈接:https://blog.csdn.net/qq_68993495/article/details/123932589
相關推薦
- 2022-07-26 用VScode編寫C++大型項目的方法步驟_C 語言
- 2022-07-22 UC瀏覽器兼容問題
- 2022-09-29 Python模塊域名dnspython解析_python
- 2023-11-25 全局后置路由守衛(afterEach)
- 2023-03-20 python如何在pygame中設置字體并顯示中文詳解_python
- 2024-01-16 Oracle的取整函數
- 2022-09-05 C語言中的字符串數據在C中的存儲方式_C 語言
- 2022-10-27 pytorch中dataloader?的sampler?參數詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支