1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C语言 void 指针 - C语言零基础入门教程

C语言 void 指针 - C语言零基础入门教程

时间:2018-07-26 06:06:22

相关推荐

C语言 void 指针 - C语言零基础入门教程

目录

一.指针简介二.空指针 NULL三.void 指针四.重点总结五.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.指针简介

在前面的文章有关于指针的介绍:指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存,以下是有效的指针声明:

int *p; /* 一个整型的指针 */double *p; /* 一个 double 型的指针 */float *p; /* 一个浮点型的指针 */char *p; /* 一个字符型的指针 */

注意:不要忘记在指针类型和变量名中间还有一个 * 号,没有这个 * 号,只是定义了一个普通变量,这也是普通变量声明和指针声明的区别之一;

二.空指针 NULL

在 C 语言中,如果一个指针不指向任何数据,我们就称之为 空指针 ,用NULL表示。例如:

int *p = NULL;

注意区分大小写,null 没有任何特殊含义,只是一个普通的标识符。NULL 是一个宏定义,在stdio.h被定义为:

#define NULL ((void *)0)

我们知道,变量一旦定义就要分配内存,指针变量也是如此。当你还不清楚要把指针初始化为什么地址时,请将它初始化为 NULL;例如:

int *p; //它不是空指针

它的值是随机的,是垃圾值,如果不小心使用了它,运行时一般会引起段错误,导致程序退出,甚至会不知不觉地修改数据。当你还不清楚要把指针初始化为什么地址时,请将它初始化为 NULL;

三.void 指针

C 语言还有一种void指针类型,即可以定义一个指针变量,但不说明它指向哪一种类型数据。例如:

void *p = malloc(20);

上面代码表示在内存中分配 20 个字节的空间,但不确定它保存什么类型的数据,有可能是 char,也有可能是 int 或者 float double……

void 指针通常称为通用指针,就是可以指向任意类型的数据。也就是说,任何类型的指针都可以赋值给 void 指针,例如:

/******************************************************************************************///@Author:猿说编程//@Blog(个人博客地址): //@File:C语言教程 - C语言 void 指针//@Time:/06/22 08:00//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!/******************************************************************************************/#include<stdio.h>int main(){int num = 1024;int *pi = &num;char *ps = "猿说编程 - ";void *pv;pv=pi;printf("pi:%p\npv:%p\n",pi,pv);printf("*pv:%d\n",*(int *)pv);pv=ps;printf("pv:%p\nps:%p\n",pv,ps);printf("*pv:%s\n",(char *)pv);return 0;}/*输出结果:pi:0060FEF0pv:0060FEF0*pv:1024pv:00403064ps:00403064*pv:猿说编程 - */

四.重点总结

NULL 用于指针和对象,指向一个不被使用的地址;而’\0’表示字符串的结尾;NULL 指针: #define NULL ((void *)0)当你还不清楚要把指针初始化为什么地址时,请将它初始化为 NULL ;在对指针进行解引用时,先检查该指针是否为 NULL

五.猜你喜欢

C 语言逻辑运算符C 语言三目运算符C 语言逗号表达式C 语言 sizeof 和 strlen 函数区别C 语言 strcpy 和 strcpy_s 函数区别C 语言 memcpy 和 memcpy_s 区别C 语言 数组定义和使用C 语言 数组遍历C 语言 数组下标越界C 语言 数组内存溢出C 语言 数组下标越界和内存溢出区别C 语言 二维数组定义和使用C 语言 二维数组行数和列数计算C 语言 指针声明和定义C 语言 指针 p++ / p–C 语言p++/§++/_(p++)/_p++C 语言 使用指针遍历数组C 语言 指针和数组区别C 语言 数组指针C 语言 指针数组C 语言 指针数组和数组指针区别C 语言 空指针 NULLC 语言 void 指针

未经允许:猿说编程 » C 语言 void 指针

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。