一个例子看懂C语言中的++号的用法

Posted gddcz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个例子看懂C语言中的++号的用法相关的知识,希望对你有一定的参考价值。

话不多说,直接上代码:

技术图片
#include<stdio.h>
int main()
    int suzu [10] =10,11,12,13,i;
    int *p=suzu;

    //打印出所有的数据
    for(i=0;i<10;i++) printf("%d\n",suzu[i]);

    //因为*的优先级高于+号 所以这个括号是必须要的
    printf("\n");
    //因为这个不是按照指针来读取的,所以我们会从默认第一位开始读取
    for(i=0;i<10;i++) printf("suzu[%d] values is %d\n",i,suzu[i]);   


    printf("\n");
    //如果我们想要输出地址的话我们就需要在前面加上&地址符号
    for(i=0;i<10;i++) printf("suzu[%d] values is %d\n",i,&suzu[i]);   
    printf("\n");
    //同样可以看出我们在前面无限的加上*&其实对取值是没有影响的
    for(i=0;i<10;i++) printf("suzu[%d] values is %d\n",i,*&*&suzu[i]);   
    
    //但是我们输入的东西不能超出索引范围,否则产生未知的数据
    printf("\n");
    printf("%d\n",*(p+3));
    printf("%d\n",*(p+11));


    //++ 的区别
    printf("\n");
    printf("%d\n",p);
    *p++;                        //指针实际上向前移动了一位    
    printf("%d\n",p);
    ++*p;                        //对指针移动到的第一位执行++操作
    printf("%d\n",p);    
    ++(*p);                        //对指针移动到的第一位执行++操作    
    printf("%d\n",p);
    *p=*p+1;                    //对指针移动到的第一位执行++操作
    printf("%d\n",p);
    //11+3
    
    //这两种写法其实没有本质上的区别
    for(i=0;i<10;i++) printf("a[%d] values is %d\n",i,*(p+i));
        printf("\n");
    for(i=0;i<10;i++) printf("a[%d] values is %d\n",i,*(suzu+i));

    return 0;
View Code

 

总结:一般来说     

*p++;    //会对指针所指向的内存地址产生影响

其余的几种写法会对指针当前所指向的内存地址中存储的值产生影响

减号也是同理

以上是关于一个例子看懂C语言中的++号的用法的主要内容,如果未能解决你的问题,请参考以下文章

C语言中cprintf的用法

C语言正则表达式

c语言中的do-while循环怎么用啊?给个例子呗。

c语言 switch的用法

c语言中,啥是枚举类型(enum),给个例子?

c语言中的颜色设置语句详解