C语言-Array

//内存的划分:栈区,堆区,静态区,常量区,代码区

    

    // sizeof();获取一个数据类型(变量)所占存储空间的大小

    

//    int a = 0;

//    printf("%lu\n",sizeof(a));

// 

//    

//    printf("%lu\n",sizeof(char));

//    printf("%lu\n",sizeof(long int));

//    

//    

//    int b  = sizeof(bool);

//    printf("%d\n",b);

//

    

    

#pragma mark - 数组

    //由多个相同数据类型组成的新的数据类型

    //数组的定义:  数据类型 数组名[常量表达式] = {初始列表}

    

    

//    int a[10] = {1,2,3,4,5,6,7,8,9,10};

//    float b[5] = {1.0,2.0,3.0};   //表示 b[0] = 1.0, b[1] = 2.0,b[2] = 3.0,b[4] = 0,b[5] = 0

//    float c[] = {1.0,2.0,3.0};  //表示 c[0] = 1.0,c[1] = 2.0,c[2] = 3.0,3个元素

    

    

    //若常量表达式省略,数组元素个数由展示出的数组元素个数决定

    //若常量表达式没有省略,数组元素个数由常量表达式的值决定

    //常量表达式!!!!!!!

    //数组中元素是一个变量,在过程中也可以被改变

    

    

//    //数组元素的访问 : 数组名 + 下标

//    int array[5] = {2,5,6,7,3};

//    printf("%d ",array[4]);

//    

//    for(int i = 0;i < 5; i++){

//        printf("%d ",array[i]);

//    }

    

    

    

    //定义⼀一个具有20个元素的整型数组,每个元素的取值范围是30-70之间,求数组元素的和

    

//    int array[20] = {0};

//    int sum = 0;

//    for(int i = 0; i < 20; i++){

//        array[i] = arc4random()%(70-30+1)+30;

//        printf("%d ",array[i]);

//        sum = sum + array[i];

//    }

//    printf("\n%d",sum);

    

    

    //复制⼀一个数组,即两个数组容量⼀一样,把其中⼀一个数组中的元素复制到另外⼀一个数组中

    

    

//    int a[10] = {1,1,1,1,1,1,1,1,1,1};

//    int b[10] = {2,2,2,2,2,2,2,2,2,2};

//    

//    for(int i = 0 ; i < 10 ; i++){

//        int c = 0;

//        c = a[i];

//        a[i] = b[i];

//        b[i] = c;

//        printf("a[%d] = %d  ",i,a[i]);

//        printf("b[%d] = %d\n",i,b[i]);

//    }

    

    

    //⽣成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相加,放到另外⼀个数组中

    

    

//    int a[10] = {0};

//    int b[10] = {0};

//    int c[10] = {0};

//    

//    for(int i = 0;i < 10; i++){

//        a[i] = arc4random()%(40-20+1)+20;

//        b[i] = arc4random()%(40-20+1)+20;

//        c[i] = a[i] + b[i];

//        printf("%d ",c[i]);

//    }

    

    

#pragma mark - 数组排序

    

//    //冒泡排序

//    int a[5] = {9,3,5,7,2};

//    //外层循环控制趟数

//     // 5 - 1 : 5个数比较4

//    for (int i = 0 ; i < 5-1; i++){

//    

//    //内层循环控制比较的次数

//        // 5 - i - 1 : 1趟只需比较5-i-1, - 1 是为了防止越界,如果越界最大的数将会和 a[5]作比较

//        for(int j = 0; j < 5 - i - 1;j++){

//        

//            //判定

//            if (a[j] > a[j + 1]){

//            //交换

//                int temp = a[j];

//                a[j] = a[j + 1];

//                a[j + 1] = temp;

//            

//            }

//            

//        }

//    

//    }

//    for(int k = 0; k < 5; k++){

//        printf("%d ",a[k]);

//    

//    }

    

    

    //随机产⽣10[20,40],并对10个数从小到大排序

    

//    int a[10] ={0};

//    

//    for(int i = 0; i <10;i++){

//        a[i] = arc4random()%(40-20+1)+20;

//    printf("%d ", a[i]);

//}

//    printf("\n");

//  for(int j = 0 ; j < 10- 1;j++ ){

//      for(int k = 0; k < 10 - j - 1; k++){

//      

//          if(a[k] < a[k +1]){

//              int c = 0;

//              c = a[k];

//              a[k] = a[k + 1];

//              a[k + 1] = c;

//          }

//      }

//}

//    for(int h = 0;h < 10;h++){

//        printf("%d ",a[h]);

//    

//    }


    

    //输入10个数从小到大排列

    

//    int a[10] = {0};

//    printf("请输入十个数字:\n");

//    

//    for(int i = 0 ; i < 10; i++){

//        scanf("%d",&a[i]);

//

//    }

//    

//    for( int j = 0; j < 10 - 1; j++){

//        for (int k = 0 ; k < 10 - j - 1; j++){

//            if(a[k] > a[k + 1]){

//                int c = a[k];

//                a[k] = a[k + 1];

//                a[k + 1] = c;

//            

//            }

//        }

//    }

//    printf("\n");

//    for(int h = 0 ; h < 10 ;h++){

//        printf("%d ",a[h]);

//    

//    }

//    

    

    

    

#pragma mark - 字符数组

    

    

    //定义一个字符数组

//    char ch [] = {'i','P','h','o','n','e'};

//    char ch_1[] = "iPhone";

    

    //数组元素个数 = 数组所占空间大小 /每个数组元素所占空间大小

    //C语言中没有字符串类型,所谓的字符串其实就是一维字符数组+'\0'

    // "iPhone" 就等价于{'i','P','h','o','n','e','\0'}

    //以第二种方法定义,大小为7,因为其中自动在结尾时添加了'\0',而在第一种方法中\0不可知在何处

//    printf("%lu\n",sizeof(ch)/sizeof (char));   //6

//    printf("%lu\n",sizeof(ch_1)/sizeof (char));   //7

//

//    

    

    

    

    

    //strlen()计算字符串长度

    

//    char ch[] = "iPhone";

//    char ch_1[10] = {'i','p','h','o','n','e','\0'};

//    printf("%lu",strlen(ch));

//    printf("%lu",strlen(ch_1));

//    //  strlen()时不计算'\0',因为它只占用实际空间并不占用长度


    

    

    

    

    // strcopy() 字符串拷贝

    

//    char ch_2[20] = "iphone6";

//    char ch_3[10] = "plus";

//    

//    strcpy (ch_2,ch_3);    //讲字符串 ch_3拷贝到 ch_2

//    for (int i = 0; i < strlen(ch_2); i++) {

//        printf("%c",ch_2[i]);

//    }

//        输出 plus

    


//    char ch_2[20] = "iphone6";

//    char ch_3[10] = "plus";

//    

//    strcpy (ch_2,ch_3);    //讲字符串 ch_3拷贝到 ch_2

//    for (int i = 0; i < 10; i++) {

//        printf("%c",ch_2[i]);

//    }

     // {  输出 plus'倒问号'e6                   }


    

//    

//    char ch_2[20] = "iphone6";

//    char ch_3[10] = "plus9999999999999";

//    

//    strcpy (ch_2,ch_3);    //讲字符串 ch_3拷贝到 ch_2

//    for (int i = 0; i < 20; i++) {

//        printf("%c",ch_2[i]);

//    }

    


    

    

//    char ch_2[20] = "iphone6";

//    char ch_3[10] = "plus";

//    

//    strcpy (ch_2,ch_3);    //讲字符串 ch_3拷贝到 ch_2

//         printf("%s",ch_2);

//    输出 plus

    

    

//    strcat()  字符串拼接

    

//    char ch_2[300] = "iphone6";

//    char ch_3[10] = "plus999999999999999999999999";

//    printf("%s\n",ch_3);

//    strcat (ch_2,ch_3);    //讲字符串 ch_3拼接到 ch_2

//         printf("%s",ch_2);

//   


    

    

    //strcmp()   字符串比较

    

//    char a[] = "abcd";

//    char b[] = "edf";

//    printf("%d",strcmp(b,a));

//输出 4

    

    

//    char a[] = "abcd";

//    char b[] = "adf";

//    printf("%d",strcmp(b,a));

//     输出3


    

//    char a[] = "abcd";

//    char b[] = "abcd";

//    printf("%d",strcmp(b,a));

//    输出0


//      char a[] = "abc ";

//      char b[] = "abcd";

//      printf("%d",strcmp(b,a));

//      输出100,( d ASCII 码值)

    

    

    

    //查找字符串中的空格数:

    //例如:“I love iOS, i want an iPhone6Plus”

    

//    int b = 0;

//    char a[] = "I love IOS, I want an iPhone6Plus";

//    for(int i = 0 ; i < strlen(a); i++){

//        if(a[i] == ' '){

//            b = b + 1;

//        }

//    

//    }

//    printf("%d",b);

    

    

    

 

//    char a[] = "I love iOS, I want an iPhone6Plus";

//    for(int i = 0 ; i < strlen(a); i++){

//        if(a[i] == 'i'){

//            a[i] == 'I';

//        }

//        

//    }

 //

 //}

    

//    char  a[8] = "afjnpue";

//    for(int i = 0; i < strlen(a) / 2;i++){

//        char b = a[i];

//        a[i] = a[strlen(a) - i - 1];

//        a[strlen(a) - i - 1] = b;

//    }

//        printf("%s",a);


你可能感兴趣的:(数组,数组排序,字符数组,数组结构,内存划分)