指针学习的新理解一

可以把指针理解为一种新数据类型,下面从七个方面来说明这种”带*类型”的新数据类型特征

1、宽度
1)新类型变量宽度永远是4字节,无论类型是什么,无论有几个*

2、声明
例子

1)char* x; char类型加*的构成一个新类型
2)short* y; short类型加*的构成一个新类型
3)student* st; 结构体类型加*的构成一个新类型
4)char*** x; char类型加***的构成一个新类型

总结
1)新数据类型的标准写法,变量类型* 变量名
2)任何类型都可以带*构成是一种新的数据类型
3)*可以是任意多个

3、赋值
例子

1)整型赋值

    int x;  
    x=(int)10; 完整写法
    x=10;      简化写法 

2)带*类型赋值

    char* x;
    short* y;
    int* z;
    char******* h;
    x = (char*)1;
    y = (short*)2;
    z = (int *)3;
    h = (char*******)4;

总结
1)带*类型的变量赋值时只能使用”完整写法”

4、加加 减减
例子

1)
    char* a;
    short* b;
    int* c;
    a = (char*)100;
    b = (short*)100;
    c = (int*)100;
    a++;
    b++;
    c++;
    //101 102 104
    printf("%d %d %d", a, b, c);

2)
    char*** a;
    short*** b;
    int*** c;
    a = (char***)100;
    b = (short***)100;
    c = (int***)100;

    a++;
    b++;
    c++;
    //104 104 104
    printf("%d %d %d", a, b, c);

总结
1)带*类型的变量可以加加 或减减
2)带*类型的变量做加加 或减减时,
新数据类型变量加加 = 新数据类型变量 + (去掉一个*后类型的宽度)
新数据类型变量减减= 新数据类型变量 - (去掉一个*后类型的宽度)

5、加上/减去 一个整数
例子

1)
    char* a;
    short* b;
    int* c;
    a = (char*)100;
    b = (short*)100;
    c = (int*)100;

    a = a + 5;
    b = b + 5;
    c = c + 5;
    //105 110 120
    printf("%d %d %d", a, b, c);

2)  
    char*** a;
    short*** b;
    int*** c;
    a = (char***)100;
    b = (short***)100;
    c = (int***)100;

    a = a + 5;
    b = b + 5;
    c = c + 5;

    //120 120 120
    printf("%d %d %d", a, b, c);

3)
    char* a;
    short* b;
    int* c;
    a = (char*)100;
    b = (short*)100;
    c = (int*)100;

    a = a - 5;
    b = b - 5;
    c = c - 5;
    //95 90 80
    printf("%d %d %d", a, b, c);

4)
    char*** a;
    short*** b;
    int*** c;
    a = (char***)100;
    b = (short***)100;
    c = (int***)100;

    a = a - 5;
    b = b - 5;
    c = c - 5;
    //80 80 80
    printf("%d %d %d", a, b, c);

总结
1)带*类型的变量可以加、减一个整数,但是不能乘或除
2)带*类型的变量与其他整数相加或相减时,
新数据类型变量 + N = 新数据类型变量 + N乘以去掉一个*后类型的宽度
新数据类型变量 - N = 新数据类型变量 - N乘以去掉一个*后类型的宽度

6、求差值
例子

1)
    char* a;
    char* b;
    a = (char*) 100;
    b = (char*) 200;

    int x = b - a;
    //x = 100;
    printf("%d\n", x);

2)
    char** a;
    char** b;
    a = (char**) 100;
    b = (char**) 200;

    int x = b - a;
    //x = 25;
    printf("%d\n", x);

总结
1)两个类型完全相同的带*类型的变量可以进行减法操作
2)相减的结果要除以去掉一个*的数据的宽度

7、比较
例子

1)
    char*** a;
    char*** b;
    a = (char***)200;
    b = (char***)100;

    if(a>b)
    {
        printf("1");//打印这里
    }
    else
    {
        printf("2");
    }   

总结
1)带*的变量,如果类型完全相同,可以做大小的比较

Python网络爬虫与推荐算法闻推荐平台:网络爬虫:通过Python实现闻的爬取,可爬取闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值