网站首页 > 技术文章 正文
1、什么是数组
典型的复合类型:同一类型变量的连续内存组成的数据类型。数组定义时(没初始化),必须指定数组的大小(或长度),数组大小必须是整形常量表达式,不能是变量或变量表达式。
下面定义数组错误的写法
1. int n = 3;
2. int b[n];错误
3. int c[10.3];错误
(important)
#define m 4
Int d[m]; 正确 宏定义可以
Int e[] = {1,2,3,4} 这也是可以的,编译器会自动识别数组e的大小为4
一维数组在内存当中是连续的一段内存单元,首地址为数组名字 e == &e[0];
例如 int a[3] = {1,3,4};
数组下标从0开始,所以数组不能越界,只能取到a[2]的值
不能取到a[3]的值。 a + i 等价于 &a[i] *(a+i) = *&a[i] = a[i]
#include <stdio.h>
#define n 3
int main () {
int a[n] = {1,3,4};
int i=0;
//a 首地址 a+1,a+2,
for(;i<n;i++)
{
printf("a[%d]的地址是:%p,&a[%d] = %p\n",i,a+i,i,&a[i]);
}
return 0;
}
求数组的长度
int len = sizeof(a) / sizeof(int);
int a[5] = {1,2,3};
数组大小为5,但是初始化只给了前三个值,后面的两个值默认被赋值为0
冒泡排序举例如下:
void bubbleSort(int a[],int length)
{
int i,j,temp = 0;
for(i=1;i<length;i++)
{
for(j=0;j<length-i;j++)
{
if(a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
选择排序如下:
void selectSort(int a[],int length)
{
int i,j,k,t;
for(i=0;i<length;i++)
{
k = i;
for(j = i+1;j<length;j++)
{
if(a[k]>a[j]) k = j;
}
if(i!=k)
{
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}
2、二维数组
int a[2][3] = {1,2,3,4,5,6}; 两行三列
可以看出 二维数组在内存当中是以行存储的顺序存储方式
二维数组是特殊的一维数组
初始化
Int a[][3] = {1,2,3,4};
代表列的数must不能省略
1 | 2 | 3 |
4 | 0 | 0 |
3、字符串与数组
‘a’ ‘\101’ = ‘A’(转义字符考察的比较多)
字符串是一种以’\0’结尾的字符数组
字符数组和字符串。
三个等价
char str[] = “china”; char str[] = {‘c’,’h’,’I’,’n’,’a’,’\0’}; char str[] = {“china”} |
字符串不能这样赋值
char str[] = {‘c’,’h’,’I’,’n’,’a’}; //not 字符串
这是一个数组,但不是字符串,没有’\0’结尾
char str[10];
str = “china”;
这样也不行,数组名字是数组的首地址,不能赋值
猜你喜欢
- 2024-09-21 你完全掌握了C语言数据类型——数组了吗?带你了解二维数组!
- 2024-09-21 C语言结构体,如何定义结构体数组?linux C第62讲
- 2024-09-21 C语言 一维数组的定义和使用(c语言中的一维数组的定义)
- 2024-09-21 「初识C语言」二维数组(c语言二维数组写法)
- 2024-09-21 【C语言】(4)数组(c语言中数组的用法)
- 2024-09-21 一文解读清楚C语言动态数组(c语言如何使用动态数组)
- 2024-09-21 C/C++编程知识分享:C++ 手把手教你实现可变长的数组
- 2024-09-21 什么是 Python 中的数组,它与列表有何不同?
- 2024-09-21 C语言系列_4:一文让你明白C语言数组
- 2024-09-21 C语言中数组:基本概念学习(c语言数组详解)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 568℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 509℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 466℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 446℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 443℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)