给数组char类型赋值
char a[]="abc"
char a[]={'a','b','c','\0'}
两者等价,把一个字符串付给数组时,会自动添加一个'\0',两个声明方式都包含四个元素。
strlen可以读取一个数组的长度,前提是该数组必须以'\0'结尾,strlen不会把'\0'包括在数组长度中。而sizeof 可以读出数组的长度*类型字节长度,包括'\0'。'\0'的ascll码是0。
冒泡排序详解。
#include <stdio.h>
void f(int* a,int s)
{
int i;
int j;
int tem;
int n;
for(i=0;i<s-1;i++)
{
tem=0;
n=0;
for(j=0;j<s-1-i;j++)//每排一趟,就可以确定一个数字,j就可以少排一次
{
if(a[j]>a[j+1])
{
tem=a[j];
a[j]=a[j+1];
a[j+1]=tem;
n=n+1;
}
if(0!=n)
break;//优化:若没有进行过交换,则已经有序了不需要再进行排序。
}
}
}
int main()
{
int a[]={4,3,3,5,2,1};
int i;
int s=sizeof(a)/sizeof(a[0]);
f(a,s);
for(i=0;i<s;i++)
{
printf("%d",a[i]);
}
}