iOS入门(十一)结构体指针

结构体指针      指向结构体变量的指针    存放结构体变量第一个成员的地址。
(*p) . sex =                p->sex =        

指针可以作为函数参数  

一般指针,数组,结构体指针     作为函数参数

传值与传址 

// 结构体指针

//    Mycar car1 = { "奥迪" , 888 , 'b'};

//    Mycar car2 = { "大众" , 288 , 'b' } ;

//    Mycar car3 = { "保时捷" , 188 , 'b'} ;

    printf( " %s \n %.2f \n %c\n " , car1.brand ,car1.price ,car1.color);

    Mycar *p1 = &car1;

    printf( "%s\n %.2f\n %c\n " ,  p1  ->brand , p1->price , p1->color);

//    Mycar car[3] = { car1 ,car2 , car3 } ;

//    Mycar * p = car ;

  p[2] . brand = "路虎";

    (p + 2 ) -> brand = " 路虎" ;

//

//    cp9(car, 3);

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

//        printf( " %s\n %.2f\n %c\n " ,  p  ->brand , p->price , p->color);

//        p ++ ;

//    }


void cp9( Mycar  array , int count )

{

    

    for int i =  i < count  ;  i ++ ) {

        if (array[i] . price 200 ) {

            strcat(array[i] . brand "S");

        }

    }

}


// 交换地址

//    int a = 3 , b = 5 ;

//    int * p1 = &a ;

//    int * p2 = &b ;

//    printf( " %p %p \n" , p1 ,p2 ) ;

    int * temp =  p1;

    p1 = p2 ;

    p2 = temp ;

    printf( " %p %p \n" , p1 ,p2 ) ;

//    change(&p1, &p2);

//    printf( " %p %p \n" , p1 ,p2 ) ;

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

    

 

void change (int ** a , int ** b )

{

    int * temp =  *a;

    *a = *b ;

    *b = temp ;

    1、输⼊入10个整数,将其中最小的数 与第一个数对换,把最⼤大的数和最后 一个数对换,写3个函数:(1)输⼊ 10个数;(2)进⾏行处理;(3)输 出10个数。

    2、在主函数中输⼊入10个等长的字符 串。用另一个函数对它们排序,然后 在主函数输出10个已经排好的字符 串。   

    面试题

    有一字符串,包含数字与字母,编程去除数字。

    1、要求在原字符串中操作 2、使用指针处理。

 

    1、主函数创建5个学生的数组,写一 个排序函数,让学生按姓名从小到大 排序,主函数输出排序后的结果.

    2、写一个整型数组排序的函数,并 测试效果

    3、预习动态内存分配


//    printf( " 面试题     :      \n\n\n" ) ;

//    char array[20] = "hello3g4sg";

//    char * p = array;

//    int i = 0 ;

//    while (*(p+i) != '\0') {

//        if (*(p+i) >= '0' && *(p+i) <= '9') {

//            int j = i ;

//            while (*(p+j) != '\0') {

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

//                j ++ ;

//            }

//        }

//        i ++ ;

//    }

//    int k = 0 ;

//    while (*(p+k) != '\0') {

//        printf( " %c" , p[k]);

//        k ++ ;

//    }

//    printf( "\n");

 



 

// 实心菱形~~~~

//    int  m = 0 ;

//    scanf("%d" , &m) ;

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

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

//            printf( "  ") ;

//        }

//        for ( int j = 0 ;  j <=2 *  i ; j ++ ) {

//            printf( " *" ) ;

//        }

//        printf( "\n");

//    }

//    for ( int i = 0 ;  i

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

//            printf( "  ");

//        }

//        for ( int j = 2 * m - 2 * i -3  ;  j >0 ; j -- ) {

//            printf( " *");

//        }

//        printf( " \n");

//    }

    

// 空心菱形

//    int  m = 0 ;

//    scanf("%d" , &m) ;

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

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

//            printf( "  ") ;

//        }

//        for ( int j = 0 ;  j <=2 *  i ; j ++ ) {

//            if (j == 0 || j == 2 * i )

//            printf( " *" ) ;

//            else printf( "  ");

//        }

//        printf( "\n");

//    }

//    for ( int i = 0 ;  i

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

//            printf( "  ");

//        }

//        for ( int j = 0  ;  j<= 2 * m - 2 * i - 4  ; j ++ ) {

//            if (j == 0  || j == 2 * m - 2 * i - 4 ) {

//                printf( " *");

//                 }

//            else printf( "  ");

//        }

//        printf( " \n");

//    }

 

//    2、在主函数中输⼊入10个等长的字符 串。用另一个函数对它们排序,然后 在主函数输出10个已经排好的字符 串。

//    char * arr[10] = { "love","like" ,"goto" ,"home" ,"town","suop","soar","want","done","work"};

//    swaparr(arr, 10);

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

//        for (int j = 0 ;  j < 4 ;  j ++ ) {

//            printf( "%c" , *(arr[i] + j) );

//        }

//        printf( "\n");

//    }

    void swaparr(char * array[] , int count )

{

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

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

                if (strcmp(array[j], array[j+1]) > 0) {

                    char  *temp = array[j] ;

                    array[j] = array[j+1] ;

                    array[j+1] = temp ;

            }

        }

    }

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值