一维数组的创建和初始化
//创建
int ar[15]; //int-数组内数字类型 arr-数组名 15(只能是常量)-数字个数
//初始化
int ar[15] = { 1, 2, 3 }; //不完全初始化,剩下的是0
//初始化结果相同,方式不同
char ar2[3] = {'a', 'b'};
char ar3 = "ab";
//不指定大小
char ar4[]="abc";
sizeof与strlen的辨析
char arr[] = "abcdef";
printf("%dn", sizeof(arr));
printf("%dn", strlen(arr));
//strlen 求字符串长度-只针对字符串长度-库函数
//sizeof 可以求数组、变量、类型所占字节-操作符
输出:
7
6
一维数组的使用
一维数组在内存中的存储
由下面代码和运行结果分析可得:一维数组在内存中是连续存放的
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0; i
二维数组的创建和赋值
二维数组的创建
注意:二维数组的创建只能省略行
赋值不充分,剩余都是0
int arr[3服务器托管网][4];
int arr[3][4] = { 1, 2, 4, 5, 6, 7, 9 } //首先对第一行赋值,赋值完进入第二行
int arr[3][4] = { {1,2},{3,4} }; //将每一行看成一维数组进行赋值
int arr3[][4] = { {1,2,3,4},{1,3,4,5} };
二维数组的使用
int main()
{
int arr[3][4] = { {1,2,3},{4,5} };
int i = 0;
for (i = 0; i
二维数组在内存中的存储
由下面代码和运行结果分析可得:二维数组在内存中依然是连续存放的
既然二维数组依然是连续存放的那么其和一维数组的区别在什么地方呢?
其实我们可把arr[i][j]中的ar[i]看作ar[i][j]的数组名,相当于产生了多个一维数组,
这也同时印证了二维数组可以以一维数组为单位进行储存。
int main()
{
int arr[3][4] = { {1,2,3},{4,5} };
int i = 0;
for (i = 0; i
数组作为函数参数
数组名代表首元素的地址。
例外
sizeof(数组名) ,数组名是整个数组,计算的是整个数组的字节数
&数组明,数组名代表整个数组,取的时整个数组的地址
注意
数组传参传的是首元素地址
冒泡排序实现
数组个数的计算要放在主函数,并通过参数传递给bubble_sort函数。因为数组传参只传了首元素地址,假如在32位环境下,该地址占4个字节,与整形相同,故若在bubble_sort函数中计算数组个数恒等于1。这样的话连循环都进不去,更别说实现排序了。
该算法其实还可以进行优化,即若已经有序,该算法还是会进行判断。于是我们引入flag=1,先默认已经有序,若不是有序,则会进入第二层循环并进行元素交换,同时将flag设置为0。在第一层循环末尾加上一个分支语句,若flag==1,则跳出第一层循环,不在进行排序判断,显然优化后的算法可以完成只要排序完成,就会跳出循环,大大提升了效率。服务器托管网
void bubble_sort(int arr[], int sz)
{
int i = 0;
for (i = 0; i arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
int main()
{
int arr[] = { 10,9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
bubble_sort(arr,sz);
for (i = 0; i arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
flag = 0; //本趟排序的数据,其实不完全有序
}
if (flag)
{
break;
}
}
}
}
int main()
{
int arr[] = { 10,9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
bubble_sort(arr,sz);
for (i = 0; i
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 服务网格:无关模式,服务间通信基础设施抽象与统一
微服务架构自出现以来,一直面临一道难题——各服务间的通信问题。 微服务架构下,各个模块以微服务的形式被拆分到了不同的进程甚至节点上,服务间通信只能使用复杂的 RPC 通讯,这也成为了微服务架构的一个性能瓶颈。2016 年,Service Mesh 的概念被提出…