1 Star 0 Fork 1

sdbzmyh/learnC2

forked from guohuacai/learnC2 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
void类型指针 和指针步长 796 Bytes
一键复制 编辑 原始数据 按行查看 历史
guohuacai 提交于 2020-12-18 09:37 . init
1.c语言是不能定义void类型的变量的,因为无法确定它的类型,所以就无法确定它占多少个字节。但是可以定义void* 类型的变量,因为所有的指针变量的长度都是确定的。
2.void* 变量可以指向任何类型,但是当需要操作它指向的内存时,需要将void* 变量的类型转换为对应的类型
如:
void* p=NULL;
int a=10;
p=&a;
*p=100 //这个会报错,应该写成*((int*)p)=100;先将void* 转换为int* 再赋值
3.指针的步长跟它指向的内存的数据类型有关,如:
int x=10;
int* p = &x;
printf("p=%d,p+1=%d\n",p,p+1);//p=6422028,p+1=6422032,结论:int*类型的指针步长是4
char c='h';
char* q=&c;
printf("q=%d,q+1=%d",q,q+1);//q=6422027,q+1=6422028,结论:char*类型的指针步长是1
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sdbzmyh/learn-c2.git
git@gitee.com:sdbzmyh/learn-c2.git
sdbzmyh
learn-c2
learnC2
master

搜索帮助