C-----------------LessionPointer

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[])

{

    /*

    //访问数据的方式,1.直接访问,直接访问变量.2.间接访问,找到变量的地址.

    int a = 10;

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

    //指针变量,专门用来存储地址的变量.

    //int * :指针变量的类型;  p :变量名;  NULL : 初值(指向一个无效区域).

    //变量定义时 * 的作用:告诉编译器后边的变量是一个指针变量,用来存储地址.

    //int :1.当通过指针变量取数据时一次性读取几个字节的数据.2.当指针变量+1或者-1时,一次性改变几个字节.

    //指针变量的空间大小和操作系统位数有关,32位4个字节,64位8个字节.char *,float *,short *,int *.

    int *p = NULL;  //NULL == 0

    p = &a; //p存储a的地址

    printf("%d\n", *p);

    *p = 20; //修改p指向的内存空间的数据 此时*的作用:根据指针变量p找到指向的内存空间,如果*p在等号的左边,中是赋值操作,否则都是取值操作.

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

    */

    /*

    int a = 10, b = 5;

    int *p1 = &a; //指向a

    int *p2 = &b; //指向b

    //通过指针变量交换a和b里面的值

    int temp = *p1;

    *p1 = *p2;

    *p2 = temp;

    printf("a = %d, b = %d\n", *p1, *p2);

    

    //通过p1访问b,通过p2访问a;

    printf("a = %d, b = %d\n", *(p2 + 1), *(p1 - 1));

    */

    /*

    int a = 10, b = 20, c = 30;

    int *p = &b;

    printf("b = %d\n", *p);

    printf("a = %d\n", *(p + 1));

    printf("c = %d\n", *(p - 1));

    //访问到a

    printf("a = %d\n", a);

    printf("a = %d\n", *(&a));

    printf("a = %d\n", *(p + 1));

    printf("a = %d\n", *(&b + 1));

    printf("a = %d\n", *(&c + 2));

    p = &c;  //指针变量重新赋值的过程就叫做指针重指向,将p指向c.

    printf("%d", *p);

     */

    /*

    int a[5] = {1, 2, 3, 4, 5};

    int *p = a; //存储数组的首地址

    printf("%d\n", *p);

    printf("%d\n", *(p + 2));

    printf("%d\n", 3[a]); // *(3 + a)  a[3] 输出同等于*(a + 3)

    //a[a] --- *(3 + a)  a[3] --- *(a + 3)   其中a为数组首地址

    //输出数组元素

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

        printf("%d ", *(p + i));

    }

    printf("\n");

    for (int i = 4; i >= 0; i--) {

        printf("%d ", *(p + i));

    }

    printf("\n");

    int b[10] = {0};

    //通过指针操作

    int *q = b;

    //赋值[20, 40];

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

        *(q + i) = arc4random() % (40 - 20 + 1) + 20;

        printf("%d ", *(q + i));

    }

    printf("\n");

    //升序排序

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

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

            if (*(q + j) > *(q + j + 1)) {

                int temp = *(q + j);

                *(q + j) = *(q + j + 1);

                *(q + j + 1) = temp;

            }

        }

    }

    //输出

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

        printf("%d ", *(q + i));

    }

    printf("\n");

     */

    /*

    int a[10] = {0};

    int *p = a;

    //1.赋值[10, 50].

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

        *(p + i) = arc4random() % (50 - 10 + 1) + 10;

        printf("%d ", *(p + i));

    }

    printf("\n");

    //2.求所有元素的最大值

//    int max = *p;

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

//        if (max < *(p + i)) {

//            max = *(p + i);

//        }

//    }

//    printf("max = %d\n", max);

    //3.求所有元素的最小值

    int min = *p;

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

        if (min > *(p + i)) {

            min = *(p + i);

        }

    }

    printf("min = %d\n",min);

    //4.求所有元素的第二大值

//    int max = 0;

//    int secondMax = 0;

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

//        if (*(p + i) > max) {

//            secondMax = max;

//            max = *(p + i);

//        } else if(secondMax < *(p + i) && *(p + i) != max){

//            secondMax = *(p + i);

//        }

//    }

//    printf("max = %d\nsecondMax = %d\n", max, secondMax);

    //5.求所有元素的和

    int sum = 0;

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

        sum += *(p + i);

    }

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

    

    //----------------

//    int max = 0;

//    int secondMax = 0;

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

//        if (max < *(p + i)) {

//            secondMax = max;

//            max = *(p + i);

//        } else if (secondMax < *(p + i) && *(p + i) != max){

//            secondMax = *(p + i);

//        }

//    }

//    printf("max = %d\nsecondMax = %d\n", max, secondMax);

    //-----------------

    int max = 0;

    int secondMax = 0;

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

        if (max < *(p + i)) {

            secondMax = max;

            max = *(p + i);

        } else if (secondMax < *(p + i) && *(p + i) != max){

            secondMax = *(p + i);

        }

    }

    printf("max = %d\nsecondMax = %d\n", max, secondMax);

     */

    /*

    int a[5] = {65536, 2, 3, 4, 5};

    // int 1.当操作内存空间时,一次性操作几个字节的空间大小. 2.当自增时,加一个单位,所增加的字节大小.

    int *p = a; //a本身就是地址,无需再取地址.

    printf("%d", *p);

     */

    /**

     *  比较 数组 和 指针变量

     1.空间大小.

     数组所占存储空间 = 数组元素个数 * 每个元素所占存储空间大小

     指针变量和操作系统位数有关,32位操作系统是4个字节;64位操作系统是8个字节.

     2.可变性.

     数组名代表数组的首地址,是一个常量地址,不可改变.

     指针变量本质上就是一个变量,可以重新赋值,指针赋值的过程叫做指针重指向.

     */

    /*

    //指针变量和字符数组(字符串)之间的关系.

    char str[] = "ac is a big company, yao shang shi";

    char *p = str; //指向字符串首地址.

    printf("%c\n", *(p + 6));

    //给定一个开始地址,一个字符一个字符的输出,直到遇到\0结束.

    *(p + 22) = '\0';

    printf("%s\n", p + 24);

    //1.字符串长度

    unsigned long length = strlen(p);

    printf("%lu\n", length);

    //2.字符串拷贝

    //strcpy 返回目的字符串的地址.

    strcpy(p + 5, "Frank");

    printf("%s\n", p);

    //3.字符串比较

    printf("%d\n", strcmp(p + 1, "bb"));

     */

    /*

    //求字符串中空格的个数,用指针操作

    char str[] = "I love iOS";

    char *p = str;

    int count = 0; //存储空格个数

    int i = 0;

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

        if (*(p + i) == ' ') {

            count++;

        }

        i++;

    }

    printf("%d\n", count);

     */

    //p1 指向数组str,数组str在栈区,空间内容可以更改

    /*

    char str[] = "Frank is handsome";

    char *p1 = str;

    strcpy(p1, "Duck");

    //p2 指向的是常量字符串的首地址,处在常量区,常量区的内容不可更改

    char *p2 = "Frank is handsome";

    strcpy(p2, "Duck");

     */

    /*

    //1.指针要有明确指向.

    //2.要指向一个可控的区域.

    char *p = 0x7ffffff100;

    strcpy(p, "aaaa");

     */

    /*

    //指针数组

    char *str[3] = {"Frank", "Duck", "Kris"};

    printf("%s", str[2]);

    //升序排序

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

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

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

                //交换,两个元素的值

                char *temp = str[j];

                str[j] = str[j + 1];

                str[j + 1] = temp;

            }

        }

    }

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

        printf("%s\n",str[i]);

    }

     */

    



    

    



    return 0;

}


******************************************************************************************************************************************************************************************************


#import <Foundation/Foundation.h>


int main(int argc, const char * argv[])

{

//    1、输入10个整数,将其中最小的数与第一个数对换,把最大的数和最后一个数对换,指针实现

    /*

    int a[10] = {0};

    int *p = a;

    int max = 0;

    int min = 1000000000;

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

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

        scanf("%d", p + i);

    }

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

        if (max < *(p + i)) {

            max = *(p + i);

        }

    }

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

        if (max == *(p + i)) {

            int temp = *(p + i);

            *(p + i) = *(p + 9);

            *(p + 9) = temp;

        }

    }

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

        if (min > *(p + i)) {

            min = *(p + i);

        }

    }

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

        if (min == *(p + i)) {

            int temp = *(p + i);

            *(p + i) = *p;

            *p = temp;

        }

    }

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

        printf("%d ", *(p + i));

    }

     */

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

//    1、要求在原字符串中操作

//    2、使用指针处理。

    char a[] = "aghk6545kj4kfsl4415kjhhf";

    char *p =a;

    int i = 0;

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

        int j = 0;

        while (*(p + i) < 57 && *(p + i) > 48) {

            if (*(p + i) > 48 && *(p + i) < 57) {

                strcpy(p + i, p + i + 1);

            }

            j++;

        }

        i++;

    }

    printf("%s\n", p);







    

    

    

    

    

    

    return 0;

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
手机销售网站利用当下成熟完善的springboot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了收货地址管理、购物车管理、字典管理、论坛管理、公告管理、商家管理、商品管理、用户咨询管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理等功能。手机销售网站的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员主要负责填充员工和其类别信息,并对已填充的数据进行维护,包括修改与删除,管理员也需要对奖惩对培训,对考,对薪资等进行管理。 商品管理页面,此页面提供给管理员的功能有:查看商品列表,新增商品,修改商品,删除商品。公告管理页面,此页面提供给管理员的功能有:新增公告,修改公告,删除公告。公告类型管理页面,此页面提供给管理员的功能有:新增公告类型,修改公告类型,删除公告类型。论坛管理页面,此页面提供给管理员的功能有:新增论坛,修改论坛,删除论坛。帖子类型管理页面,此页面提供给管理员的功能有:新增帖子类型,修改帖子类型,删除帖子类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值