深入了解C语言指针
短信预约 -IT技能 免费直播动态提醒
指针是什么?
总结:指针就是个变量,变量里面是地址,指针就是地址。(存放在指针的值都被当成地址处理)。
注:指针的大小在32位平台是4个字节,在64位平台是8个字节。
指针和指针类型
通过前面的知识我们知道,变量有不同的类型,如:整形,浮点型等。
同理:指针也有不同的类型。
**指针的定义方式:
变量类型 + *
比如:
int * pi=NULL char * pc=NULL short * ps=NULL long *pl=NULL float *pf=NULL double *pd=NULL …
指针类型的意义?
指针±整数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n = 10;
char *pc = (char*)&n;
int *pi = &n;
printf("n=%p\n", &n);
printf("pc=%p\n", pc);
printf("pi=%p\n", pi);
printf("pc+1=%p\n", pc + 1);
printf("pi+1=%p\n", pi + 1);
return 0;
}
总结:指针的类型决定了指针向前或者向后走一步有多大(距离)。
指针的解引用
指针运算
- 指针±整数
- 指针-指针
- 指针的关系运算
注:指针相减前提,指向的地址相等
指针±整数
#define MAX 5
int arr[5];
int *p;
//指针+-整数
for(p=&arr[0] ;p<&a[MAX]; )
{
*p++ =0;
}
指针-指针
int my_strlen(char *s)//没有指针减指针
{
char *p = s;
while (*p != '\0')
p++;
return p - s;
}
指针的关系运算
for (p = &arr[MAX]; p > &arr[0])
{
*--p;
}
标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341