#import<Foundation/Foundation.h>#include<stdbool.h>#include<string.h>//字符串的操做需要引入string.h 头文件
- 数组:具有相同类型的元素组成的有序序列.
注:数组是一种构造类型不属于基本类型.
//定义一位数组的几种不同表现形式
//int 代表数组保存的元素的类型为整型
//[3]代表数组所能保存的元素的个数也称为长度
//{0}是为数组赋初值,写一个0,就可以让数组的三个元素全部赋值为0,即为初始化数组
int array1[3] = {0};
//数组在定义时可以省略长度的定义,数组的具体长度可以根据初始值的个数确定.
int array2[] = {1,2,3};
//数组定义式长度确定,但是初值的个数小于实际长度,则数组最终会以0补足.{1,2,3,0,0,0}
int array3[6]={1,2,3}
- 注意问题
//数组里面的所有成员必须相同
//[ ]里面是元素的个数.只能是常量表达式,不能使用变量,(也可以省略,这时候根据初始值的个数系统会自动添加个数)
//下标的范围从0开始道n-1.(至于为什么从0开始,要学习指针).
//数组越界会引起 crash (崩溃)问题,越界就是访问数组的时候 超出了数组的个数.bounds(边界) beyound compare(无与伦比).
int array[10] = {0};
int max = 0;
for(int i = 0;i < 10;i++){
i[array] = arc4random()%(100-10+1)+10;//赋值
printf("%d ",i[array]);
//c 语言语法糖(syntax sugar)
max = max > i[array] ? max: i[array];//最大值
}
printf("max=%d ",max);
printf("\n");
//冒泡排序,升序
for(int i = 0;i < 10;i++){
for(int j = 0;j < 10-1-i;j++){
if(a[j] > a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("\n");
int array[7]={3,5,2,1,6,7,4};
//外层循环控制冒泡排序比较的趟数,一共比较数组长度-1躺
for(int i = 0;i < 6;i++){
// 内层循环控制一次比较的次数,每一次比较要比上一次的比较次数少一次/因为上一趟已经将目标元素排在数组最后一个.
for(int j = 0;j < 6-i; j++){
if(array[j]<array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
//*****选择排序*****
int array[7] = {7,3,2,6,1,4,5};
for(int i = 0;i < 7-1 ;i++){
int index = i;
for(int j = i + 1;j < 7; j++){
if (array[j] < array[index]){
index = j;
}
}
if(i != index){
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
for(int i = 0;i < 7 ;i++){
printf("%d ",array[i]);
}
charstr1[]={'a','b','c'};
//字符数组以其数组元素为特定字符类型和数组元素有序的特征可用来标识字符串,如果赋值时义 str2 的方式赋值,才能称为字符串,因为字符串的结尾必须有'\0'字符.
//strlen函数求出的字符串的长度不包括\0;
//strlen() 字符串长度
//strcpy() 字符串拷贝
//strcat() 字符串拼接
//strcmp() 字符串比较
//**********栈内存,从高到低分配,从低到高存取. charstr2[]="abc";
// long length = strlen(str1);
// printf("%ld\n",length);
char str3[] = "i love you"; char str4[11] = {0};
//strcpy 是将第二个字符串的内容拷贝到第一个参数字符串中.第一个参数字符串的长度要大于第二个长度才可以正常拷贝.
strcpy(str4,str3);
//%s 格式控制符如果跟 printf 函数去可打印字符串,也是通过\0作为结束标志. printf("%s\n",str4);
char str5[200]="happy new year ";
//将第二个字符串拼接在第一个参数字符串的末尾,第一个字符串要拥有足够大的空间,否则拼接失败.
strcat(str5,str4);
printf("%s \n",str5);
char str6[] = "abc";
char str7[] = "abd";
//字符串比较函数是通过比较两个给定字符串的对应位字符串的 ascii 码差值来做比较的,函数的返回值为0说明两个字符串相同
int result =strcmp(str6,str7);
printf("%d\n",result);
网友评论