开辟一块连续的内存空间
相同数据类型的集合
一堆数组的集合
int arr[3] = {1,2,3};
int arr[] = {1,2,3};
int arr[10] = {1,2};
arr代表数组首元素地址
sizeof(arr)= ;12
sizeof(arr)/sizeof(arr[0])
访问方式[1]=9; 通过下标访问
for(int i =0;i<sizeof(arr)/(arr[0]);i++)
{
//arr[i];
}
一堆数组的增删改查
删除:删除头部元素,删除尾部元素,删除值操作
1、删除头部元素
int main()
{
int arr[] = {1,2,3};
const int len = sizeof(arr)/sizeof(arr[0]);
int tmp[len-1] = {};
for(int i=1;i < len;i++)
{
tmp[i-1]=arr[i];
}
for(int i=0;i<sizeof(tmp)/sizeof(tmp[0]);i++)
{
printf("%d\n",tmp[i]);
}
return 0;
}
2、3需用到动态内存
字符和字符串
“hello”-> 字符数组
'h''e''l''l''0''\0'
char ch[] = "hello";//'h''e''l''l''0''\0'
统计一个字符在字符串中出现的次数
int GetCount(char* ch,char value,int len)
{
//统计字符value出现的个数
int count = 0;
for(int i = 0; i < len;i++)
{
if (ch[i] == value)
{
count++;
}
}
return count;
}
int main()
{
char ch[] = "i am a student";
int len = sizeof(ch)/sizeof(ch[0])-1;
//统计字符‘l’出现的个数
printf("%d\n",GetCount(ch,'a',len));
}
从前向后找到偶数值的位置停止,从后向前找到奇数值的位置停止,交换
void Adjust(int *arr,int len)
{
if (arr == NULL)
{
return ;
}
int i = 0;//从前向后遍历
int j =len - 1;//从后向前遍历
while(i<j)
{
while(i<j && arr[i]%2 != 0)
{
i++;
}
//arr[i]是偶数
while(i<j && arr[j]%2 ==0)
{
j++;
}
//arr[j]是奇数
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int main()
{
int arr[] = {1,2,3,4,5,6};
Adjust(arr,sizeof(arr)/sizeof(arr[0]));
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++);
{
printf("%d",arr);
}
}