高碑店建设局网站,桂林网站制作网站,青岛教育平台网站建设,广告公司网站建设方案指针一般有三种含义#xff1a;一是指明数据的位置#xff0c;体现在指针的值#xff0c;表示一个地址。二是表示数据类型的大小#xff0c;例如int指针表示四个字节为一组数据#xff0c;体现在指针的加减法如何计算。三是表示数据如何被解释#xff0c;例如float指针和…指针一般有三种含义一是指明数据的位置体现在指针的值表示一个地址。二是表示数据类型的大小例如int指针表示四个字节为一组数据体现在指针的加减法如何计算。三是表示数据如何被解释例如float指针和int指针它们都是4字节32bits但是它们的解释完全不同。这体现在它们解引用的结果。著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。在C语言中void数据类型表示“没有值”的意思它不可用于变量或者常量声明而是主要用于以下场景用于函数声明的void没有返回值的函数其返回值类型是void。例如标准库函数free()的声明如下void free(void*ptr);参数列表中的void表示此函数调用没有参数。例如函数tempfile()的声明如下 FILE *tempfile(void);如果在调用tempfile()函数时尝试传入参数则编译器会报错。数据类型为void的表达式void表达式即没有值的表达式。因此对返回值类型为void的函数的一次调用就是一种void表达式例如对free()函数的调用。如果显式地将表达式的值转换为void型则会丢弃表达式的返回值例如(void)printf(hello world!\n);上面这个调用将丢弃printf()函数的返回值。void指针void*是一种指针类型表示一个对象的地址 但没有说明该对象的数据类型。可以使用这种没有指定类型的指针来声明函数的返回值类型以及函数的参数从而让函数可以处理各种类型的指针变量如malloc() 、free() 等内存管理函数就属此类void *malloc(size_t size);
void free(void *ptr);如下面的代码所示可以将一个void指针值赋予另一种类型的指针变量反之亦可这种赋值操作不需要进行显示式的类型转换。#include stdio.h
#include stdlib.h //提供malloc()、free()、rand()、srand()、exit()的声明
#include time.h //提供time()的声明int main()
{size_t n100;int *numsmalloc(sizeof(int)*n);//malloc()返回一个void指针。if (numsNULL){fprintf(stderr,Insufficient memory .\n);exit(1);}srand(time(NULL));for (size_t i0;in;i)nums[i]rand()%n;for (size_t i0;in;i)printf(%d ,nums[i]);free(nums);return 0;
}