数组
int arr[]={1,2,3};
char arr1[]={'a','b','c'};
char arr2[]="abcdef"; printf("%d",sizeof(arr2))值为7空间中包含/0, printf("%d",strlen(arr2))值为6空间算到/0之前
二维数组
arr[3][4]={{1,3,4},{4,5,6}};
冒泡法
arr[10]={0,1,2,3,4,5,6,7,8,9};
int sz =0;
sz= sizeof(arr)/sizeof(arr[0]);
int flag = 1;
for(i=0;i<sz;i++)
{
int j=0;
for(j=1;j<sz-i-1;j++)
{
if(arr[i]>arr[i+1])
{ int tmp =0;
tmp=arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
flag = 0;
}
}
if(flag == 1)
{
break;
}
}
sizeof中放一个数组名表示整个数组;&数组名,取出数组地址,数组名表示整个数组;除此以外都是表示数组首元素地址。
printf("&p\n",arr);
printf("&p\n",&arr[0]);
printf("&p\n",&arr);
都是一样的
printf("&p\n",arr+1);
printf("&p\n",&arr[0]+1);
printf("&p\n",&arr+1);
第三个不一样