欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

c语言指针的初步认知

时间:2023-06-03
1 变量的访问方式 2 指针变量的定义 3 实战

1变量的两种访问方式:1 通过变量名 2 通过 变量地址 我们举一个例子 

比如 xx花店 你要到哪里 你需要知道花店名字 或者 是 花店的地址 这样 就可以到达。

变量的两种访问方式 代码 是演示

#includevoid main(void){ int a=10; printf("%dn",a);//通过变量名访问 printf("%dn",*(&a));//通过地址访问 }

#include 头文件意思是 在特定的路径包含输入输出函数等

直接用a 就是 变量名 访问 或者 取变量名的地址 在* 就是把地址的值取出 这两个就是访问变量的两种方式 最后的结果是一样的。

2 指针变量含义 :一个存放地址的变量 指针 又是地址 所以简单理解 指针==地址 地址==指针

指针变量的定义

int *p;

定义一个int类型的指针变量 *是识别符 并且告诉计算机声明我是一个指针变量

指针变量的应用

#includevoid main(void){ int a=10; //定义一个int 类型的a变量 int *p;//定义一个指针变量 *是标识符 告诉计算机声明我是一个指针变量 p=&a;//初始化printf(" 通过地址访问得到的值 :%d",*p);//写法1printf("也是通过地址访问得到的值:%d",*(&a));//和写法1 一样printf("通过变量名得到的值 %d",a); }

指针变量需要 要求类型吗  我们通过几个例子说明 

首先 我们定义一个char 类型的指针 变量 和 int类型大小的变量 用sizeof 关键字 打印出来  

看看结果怎么样 

#includevoid main(void){ int *p=10; char *a=2; printf("int 类型的指针变量大小 %dn",sizeof(*p)); printf("char 类型的指针变量大小 %d",sizeof(*a));}

   定义了一个int 类型的指针变量  就是一个指向int类型的变量  char也是这么理解 

所以在打印输出 结果是 4 和 1 

int类型是 4个字节  char 是 一个字节  

我们在通过一个方法  来 证明 指针变量 需要 要求类型的说法

通过偏移量打印 地址对比 

#includevoid main(void){ int *p; char *a; printf("int 无偏移 %#xn",p); printf("int 有偏移 %#xn",++p); printf("n"); printf("char 类型 无偏移 %#xn",a); printf("char 类型有偏移 %#xn",++a); }

运行结果 

 为什么会出现这样的结果 

1 int类型是 四个字节大小   自加偏移 一位就是 四个字节

2 char 类型是 1个字节大小  自加 偏移 一位就是 一个字节 

地址偏移的问题 是不是 整块的偏移, 并不是 

首先 用 int 类型的举例子  它有四个字节大小  我们 在操作偏移 时  是在他的四个字节范围内活动的 。 换个说法 int类型 就是四个字节  偏移了一位  (++p)int 类型就变成了 8个字节 显然这是不对的  。就像 一把游标卡尺  它就这么大 你可以通过移动 偏移  到不同的地址 

总的来说 指针变量要求定义的类型      因为 它决定了 1 指向空间的大小 2 决定了偏移量 

int 类型记得是 四个字节大小  char 类型是一个字节大小 

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。