7
29
2015
2

关于指针的操作

    wy今天打了一道高精题,被O(n)的赋值语句导致的TLE虐的体无完肤/(ㄒoㄒ)/~~

    然,同机房的神犇P竟用FFT卡过了?!蒟蒻wy表示为此也是操碎了心。。。

    无奈之下,懒人wy只好学习一下指针。。。

 

    持续更新中,请勿吐槽。。。。。。

据机房金牌爷Gwy提供的材料,

一个指针包含两方面的含义:

1、存储单元表示的地址

2、指针指向的存储单元的数据类型

 

&取地址运算符  &a是a变量的地址

* 指针运算符   *p代表指针变量指向的对象

 

下面做一个试验,

结果是这样的。。。

                        

 

指针变量作为函数参数是将一个变量的地址传送到另一个函数中

 

再来一个试验。。。

结果如下

                       

 

在利用指针变量的时候,我们可以改变指针所指向的变量的值,但不可以改变指针的值。

 

指针变量既可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。

 

 

当指针指向数组元素的时候会出现指针的运算。。。

p++,p--,p+n,p-n,p1-p2(只有当两个指针指向同一个数组的时候才有效)

但是两个指针的相加是毫无意义的。

 

注意!!!

*p++ (*和p是同级别的,相当于*(p++))

*(p++) 先得到*p的值,然后p++; *(++p) 先p++,然后得到*p的值

++(*p) 如果*p=3, ++(*p)=4

 

数组名做形参的时候,编译器是当做指针来处理的,所以形参数组内容的改变会改变实参内容。

而且做形参时int x[]一定不能定义大小,因为此时是int x[]一个指针。

Category: 学习&复习 | Tags: 指针 ing | Read Count: 643

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com