c语言问题帮忙解释一下

[复制链接]
查看11 | 回复4 | 2013-7-15 10:37:00 | 显示全部楼层 |阅读模式
(char *)pv++ :对指针pv进行++操作,然后强制转化为char类型指针。因为你说pv本来是void指针,所以在这个前提下,这个表达式是错误的,因为void类型的指针不能执行++操作,因为编译器不知道所指向类型的size。((char *)pv)++:对指针强制转化为char类型指针,然后pv进行++操作,因为是char类型,所以pv增加1,如果是其他类型,则增加相应类型的size。...
回复

使用道具 举报

千问 | 2013-7-15 10:37:00 | 显示全部楼层
(char *)pv++,是pv所代表的地址加一个字节后所得的地址单元存储的变量,整个仍是指针变量,代表变量的地址 ((char *)pv)++是pv所指向的变量自身值加1还是多看C++书上第6章,在visual c里面多编译下吧, 指向指针数组的指针变量 代表 数组中的元素,指向指针的 指针变量代表 元素的地址,只要区分 指...
回复

使用道具 举报

千问 | 2013-7-15 10:37:00 | 显示全部楼层
((char *)pv)++ pv 指针所指的内容自加(char *)pv++
pv的值自加后,转换成char类型的指针...
回复

使用道具 举报

千问 | 2013-7-15 10:37:00 | 显示全部楼层
前者把PV++的值转换成char *型的,而PV仍然是void *型的,后者是把pv转换成char *的,一会pv都是char *的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行