数组可以说是一种最简单的数据结构,它占据一块连续的内存并按顺序存储数据。
数组的创建首先需要设置数组的容量大小,然后根据大小 分配内存。
由于数组的内存是连续的可以用数组实现简单的哈希表,数组的下标为哈希表的键值(Key),下标对应的数据为哈希表的值(Value)
第一个只出现一次的字符
int main()
{
char arr[] ="abcdbcd";
char key;
int i=0;
int j=0;
int ret = sizeof(arr);
for(int i=0;i<ret,i++)
{
for(int j=i;j<ret;j++)
{
if(arr[i] == arr[j])
{
break;
}
}
if(j == ret)
{
key = arr[i];
printf("%c",key);
break;
}
}
return 0;
}
在c/c++中,数组和指针及相互关联也相互区别,声明一个数组其数组名字是一个指针,该指针指向数组的第一个元素,注意:用指针访问数组元素,不能超出数组边界例:
int Getsize(int data[])
{
return sizeof(data);
}
int main()
{
int date[] = {11,2,3,4,5};
int size1 = sizeof(data);
int *date1= data;
int size2 = sizeof(date1);
int size3 = Getsize(data);
printf(“size1 = %d ,size2 = %d, size3 = %d”,size1,size2,size3);
return 0;
}
在32位系统指针大小位4字节;64位8字节;return sizeof(data);返回的是指向数组第一个元素的指针的大小。
查找数组中查找数组中重复的数字
1,先堆数组进行排序,在扫描数组
2.扫描数组,每扫描一个数字,保存到另一个数组,当扫描下一个数字是查找保存数字的数组中是否已经存在,存在及该数重复