二维数组a
a[0][0]第0行第0个元素
&a[0][0]第0行第0个元素的地址
a[0]代表第0行一维数组的数组名, a[0]= &a[0][0]
&a[0]第0行的地址
a二维数组数组名,代表二维数组,也代表首行地址&a[0]
&a二维数组的地址
&a[0][0] +1 元素地址加1,跨过一个元素
a[0] +1 元素地址加1,跨过一个元素
&a[0]+1 行地址加1,跨过一行
a+l 行地址加1,跨过一行
&a +1 二维数组地址加1,跨过整个数组
man用法
当不知道库函数如何使用时,可以使用man命令查看
冒泡法排序
#include "stdio.h"
int main()
{
int a[6] = {1,8,3,4,9,6};
for(int i = 0; i < sizeof(a)/sizeof(a[0]) - 1; i ++)
{
for(int j = 0; j < sizeof(a)/sizeof(a[0]) - 1 - i; j ++)
{
if(a[j] > a[j + 1])
{
int temp = 0;
temp = a[j];
a[j] =a[j + 1];
a[j + 1] = temp;
}
}
}
for(int i = 0; i < sizeof(a)/sizeof(a[0]); i ++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
scanf
遇到\n结束,遇到空格也结束,会造成内存污染
gets
遇到\n结束,但是遇到空格不结束读取空格,gets也会造成内存污染
man gets
fgets
接收\n,但是遇到空格不结束读取空格,不会造成内存污染
man fgets
解决\n问题
生成随机数