![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
上面函数打印的结果是什么?
分析:
*(s+2) += 2;和下面的语句一样
首先 *(s+2) = *(s+2) + 2
其次 要理解*(s+2)就是一个整型的变量(相当于int i 中的i一样的一个变量)
基于上述分析 结果不难得出结果:
*s = 6
*(s+2) = 10
我开始犯糊涂了,认为(s+2)是一个地址*(s+2) 就是一个值了,既然一个值(常量)如何能被赋值呢?
郁闷了半天,最后终于醒悟*(s+2)相当是一个变量,就像int i中的i一样是一个变量一样,教科书里面经常说*(s+2)就是取(s+2)的值,这样的说法我想容易误道人。
我们程序中通常输出i这样类似变量的值,时间长了我就以为*(s+2)是一个值了,艾
总结如下:
int *i;
int j = 5;
i = &j;
*i就相当是一个普通的变量和j一样的普通变量,但是i就是一个指针变量。