码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-09-26 21:45:19      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:用法   std   hid   open   print   读取   int   区别   产生   

话不多说,直接上代码:

技术图片
#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语言中的++号的用法

标签:用法   std   hid   open   print   读取   int   区别   产生   

原文地址:https://www.cnblogs.com/gddcz/p/11594413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!