int类型的变量存储和存储地址,int类型的话,每个数值的存储占4个空间,比如存储数字10,就用了0061FE8C,0061FE8D,0061FE8E,0061FE8F这四个空间。相应的还有short,long,long long,char都是相同的原理。在这个程序中,sizeof(数组名),可以用来统计整个占用内存空间的大小,而sizeof(数据类型),可以用来统计这个数据类型所占的空间大小。
int array[5]={10,11,12,13,14};
printf("int类型空间大小:%d\n",sizeof(int)); //一个int类型占用4个空间
printf("总类型空间大小:%d\n",sizeof(array)); //共占用20个空间
printf("array[0]的变量地址:%#p\n",&array[0]); //0061FE8C,0061FE8D,0061FE8E,0061FE8F, (10)
printf("array[1]的变量地址:%#p\n",&array[1]); //0061FE90,0061FE91,0061FE92,0061FE93, (11)
printf("array[2]的变量地址:%#p\n",&array[2]); //0061FE94,0061FE95,0061FE96,0061FE97, (12)
printf("array[3]的变量地址:%#p\n",&array[3]); //0061FE98,0061FE99,0061FE9A,0061FE9B, (13)
printf("array[4]的变量地址:%#p\n",&array[4]); //0061FE9C,0061FE9D,0061FE9E,0061FE9F, (14)
char array_01[5]={10,11,12,13,14};
printf("char类型空间大小:%d\n",sizeof(char)); //一个char类型占用1个空间
printf("总类型空间大小:%d\n",sizeof(array_01)); //共占用5个空间
printf("array_01[0]的变量地址:%#p\n",&array_01[0]); //0061FE9B(10)
printf("array_01[1]的变量地址:%#p\n",&array_01[1]); //0061FE9C(11)
printf("array_01[2]的变量地址:%#p\n",&array_01[2]); //0061FE9D(12)
printf("array_01[3]的变量地址:%#p\n",&array_01[3]); //0061FE9E(13)
printf("array_01[4]的变量地址:%#p\n",&array_01[4]); //0061FE9F(14)
short array_02[5]={10,11,12,13,14};
printf("short类型空间大小:%d\n",sizeof(short)); //一个short类型占用2个空间
printf("总类型空间大小:%d\n",sizeof(array_02)); //共占用10个空间
printf("array_02[0]的变量地址:%#p\n",&array_02[0]); //0061FE96,0061FE97(10)
printf("array_02[1]的变量地址:%#p\n",&array_02[1]); //0061FE98,0061FE99(11)
printf("array_02[2]的变量地址:%#p\n",&array_02[2]); //0061FE9A,0061FE9B(12)
printf("array_02[3]的变量地址:%#p\n",&array_02[3]); //0061FE9C,0061FE9D(13)
printf("array_02[4]的变量地址:%#p\n",&array_02[4]); //0061FE9E,0061FE9F(14)
long array_03[5]={10,11,12,13,14};
printf("long类型空间大小:%d\n",sizeof(long)); //一个long类型占用4个空间
printf("总类型空间大小:%d\n",sizeof(array_03)); //共占用20个空间
printf("array_03[0]的变量地址:%#p\n",&array_03[0]); //0061FE8C,0061FE8D,0061FE8E,0061FE8CF(10)
printf("array_03[1]的变量地址:%#p\n",&array_03[1]); //0061FE90,0061FE91,0061FE92,0061FE93(11)
printf("array_03[2]的变量地址:%#p\n",&array_03[2]); //0061FE94,0061FE95,0061FE96,0061FE97(12)
printf("array_03[3]的变量地址:%#p\n",&array_03[3]); //0061FE98,0061FE99,0061FE9A,0061FE9B(13)
printf("array_03[4]的变量地址:%#p\n",&array_03[4]); //0061FE9C,0061FE9D,0061FE9E,0061FE9F(14)
long long array_04[5]={10,11,12,13,14};
printf("long long类型空间大小:%d\n",sizeof(long long)); //一个long long类型占用8个空间
printf("总类型空间大小:%d\n",sizeof(array_04)); //共占用40个空间
printf("array_04[0]的变量地址:%#p\n",&array_04[0]); //0061FE78,0061FE79,0061FE7A,0061FE7B,0061FE7C,0061FE7D,0061FE7E,0061FE7F(10)
printf("array_04[1]的变量地址:%#p\n",&array_04[1]); //0061FE80,0061FE81,0061FE82,0061FE83,0061FE84,0061FE85,0061FE86,0061FE87(11)
printf("array_04[2]的变量地址:%#p\n",&array_04[2]); //0061FE88,0061FE89,0061FE8A,0061FE8B,0061FE8C,0061FE8D,0061FE8E,0061FE8F(12)
printf("array_04[3]的变量地址:%#p\n",&array_04[3]); //0061FE90,0061FE91,0061FE92,0061FE93,0061FE94,0061FE95,0061FE96,0061FE97(13)
printf("array_04[4]的变量地址:%#p\n",&array_04[4]); //0061FE98,0061FE99,0061FE9A,0061FE9B,0061FE9C,0061FE9D,0061FE9E,0061FE9F(14)
数组是有固定的长度的,如果长度超出数组长度,则视为越界。
将数组传递给函数:
主函数
被调函数名(实参数组名 实参数组大小)
被调函数
被调函数名(形参数组名 形参数组大小)
函数名(形参 类型 形参类型)
<1>逆置数组
int change(int b[],int n);
int main(){
int i;
int a[8]={1,2,3,4,5,6,7,8};
for(i=0;i<8;i++)
printf("%d\n",a[i]);
change(a,8);
for(i=0;i<8;i++)
printf("改:%d\n",a[i]);
return 0;
}
int change(int b[],int n){
int i;
int t;
for(i=0;i
首先在主函数定义一个数组a,在数组里面放入需要存储的元素,然后在子函数里面实现元素的逆转,定义一个t,然后将第一个元素与最后一个元素,以t为媒介进行交换,不断地进行循环,循环的次数就是总元素个数除2。然后通过主函数调用实现。
<2>冒泡排序
#include
#include
#include
int change(int a_01[],int m);
int main(){
int a[10]={0};
int i;
int b;
srand((unsigned)time(NULL)) ;
for(i=0;i<10;i++){
b=rand()%100;
printf("a[%d]的元素为:%d\n",i,b);
}
change(a,10);
for(i=0;i<10;i++){
printf("a[%d]的元素排序后的值为:%d\n",i,b);
}
return 0;
}
int change(int a_01[],int m){
int i,j;
int t;
for(i=0;i