- 8
- 0
- 约 7页
- 2016-11-26 发布于重庆
- 举报
c指針的应用
指针就是地址。
按类型来分指针有 int、char 、float等基本类型。
对于扩充的数据类型则有struct 等。
指针的类型决定了指针操作时该指针指向地址变化的规律。
例: int a, *p; //定义了一个整型指针以后就可以写为 p=a; 这个好理解。
麻烦的是指针与数组结构等结合起来了之后情况就变得复杂起来,如下例:
int arr[10], *p; p=arr; 此时把数组的地址赋给了指针p,指针p就指向了数组的首地址。现在假设数组的首地址值是3452,则指针p的值必然是3452。那么 p+1 表示指针移动指向了数组的下一个元素,那么p+1的值是什么?初学指针时对这一点很容易搞错不加思索的回答既然p==3452,那么p+1就等于3452+1==3453,
如果这样去认识指针就大错特错了。这里的p+1不是简单的算术运算,它表示这样一个意思——指针移动了一个元素准确地说是指针移动了一个整型元素。一个整型变量占多少字节内存:2 个字节,所以在这里指针的地址变化为一个整型变量那么它的地址自然要在原来的地址值上加 2 ,所以指针移动一个整型元素后地址值应为3452+2,即指针p的值为3454。
上面讲的是整型指针的情形,对于字符型指针呢?其实只要对上面所讲的道理真正理解了,字符型指针也就好理解了。例子如下:
char aa[10], *p; p=aa; 同样假
原创力文档

文档评论(0)