为了账号安全,请及时绑定邮箱和手机立即绑定

C指针原理(17)-C指针基础

标签:
C++


指针本身也是一种变量,支持常用的运算。比如加、减

#include <stdio.h>

int main(void){

        int i;

        char x[20]="0123456789ABCDEFGHIJ";

        for (i=0;i<20;i++){

        printf("x[%d]:%c\n",i,x[i]);

        }

        char *p_x;

        for (p_x=&x[0];p_x<&x[20];p_x++){

                printf("%c",*p_x);

        }

        printf ("\n");

        for (p_x=x;p_x<(x+20);p_x++){

                printf("%u:%c\n",p_x,*p_x);

        }

        return 1;

}

在后面增加的内容p_x直接指向了x,然后通过x++来移动指针,终止for循环的条件是p_x<(x+20),x+20指向了数组的结尾处后面的内存位置,这个内存位置永远不会被访问,所以这样引用是安全的。

最后这段代码将每个字符的内存地址以及字符本身输出.

myhaspl@myhaspl:~ % make clean

rm mytest

myhaspl@myhaspl:~ % make

cc test3.c -o mytest

myhaspl@myhaspl:~ % ./mytest

...........

...........

4294957776:0

4294957777:1

4294957778:2

4294957779:3

4294957780:4

4294957781:5

4294957782:6

4294957783:7

4294957784:8

4294957785:9

4294957786:A

4294957787:B

4294957788:C

4294957789:D

4294957790:E

4294957791:F

4294957792:G

4294957793:H

4294957794:I

4294957795:J

myhaspl@myhaspl:~ % 

©著作权归作者所有:来自51CTO博客作者myhaspl的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消