开发者学堂课程【C语言学习教程: void 类型的指针】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/387/detail/4939
void 类型的指针
目录:
一、void 类型的指针
二、练习
一、void 类型的指针
可以指向任何变量,但在使用时,需要进行强制类型转换之后才能使用
例如:
int nData=10;
Void * pData=&nData;
printf("%d",*pData); //error
printf("%d",*((int*)pData)); //ok
int main(int argc,const char *argv[]){
int nData=10;
int * pData=&nData;
void * pData=&nData;
*p1 = 19; //会报错
为什么指针要声名称它指向什么类型?
从内存角度讨论:
指针是有位移的
一个 char 型指针每一个 char 占了一个字节
一个 int 型指针每一个 int 占了四个字节
void 型指针不知道
所以要对 void 进行强制转换
* (int*)p1=19;
Char temp = ‘A’;
P1 = &temp;
* (char*)p1=‘b’;
二、练习
1.定义一个字符型变量
char temp = ‘a’
2.定义一个 viod 型的指针变量
void *p = NULL;
3.通过 void 指针变量访问字符型变量
p= &temp;
printf("%c \n",*(char*)p);
4.输出指针变量指向的变量的值,输出指针变量
printf("%p \n",p);