西部数码虚拟主机怎么做网站,做视频网站利润如何,济南做网站公司,东山县建设官方网站一#xff1a;C语言属于强类型语言 #xff08;1#xff09;编程语言分两种#xff1a;强类型语言和弱类型语言。强类型语言所有的变量都有自己固定的类型#xff0c;这个类型有固定的类型占用#xff0c;有固定的解析方法#xff1b;弱类型语言中没有类型的概念#x…一C语言属于强类型语言 1编程语言分两种强类型语言和弱类型语言。强类型语言所有的变量都有自己固定的类型这个类型有固定的类型占用有固定的解析方法弱类型语言中没有类型的概念所有变量都是一个类型一般都是字符串的程序在用的时候在根据需求来处理变量 2C语言就是强类型的语言C语言中所有的变量都有明确的类型。因为C语言中的一个变量都要对应内存中的一段内存编译器需要这个变量的类型来确定这个变量占用内存的字节数和这一段内存的解析方法。
二数据类型的本质含义 1数据类型的本质就决定变量的内存占用数和内存的解析方法 2所以得出结论C语言中变量必须要有明确的数据类型如果一个变量没有确定的类型就是所谓的无类型会导致编译器无法给这个变量分配内存也无法解析这个变量对应的内存。因此不可能没有类型的变量 3但是c语言可以有没有类型的内存。在内存还没有和具体的变量相绑定之前内存就可以没有类型。实际上纯粹的类型就是没有类型的内存只是和具体的变量关联了之后才有了确定的类型内存本身不知道而编译器知道我们程序使用这个内存时知道类型所以会按照类型的含义去进行内存的读和写
三void类型的本质 1void类型正确的含义是不知道类型不确定类型还没确定类型 2void a 定义了一个void类型的变量含义就是a是一个变量而且a肯定有确定的类型只是目前还不知道a的类型还不确定所以标记为void 四为什么需要void类型 1什么情况下需要void类型其实就是在描述一段还没有具体使用的内存时需要使用void类型 2void的类型的典型应用案例就是malloc的返回值。我们知道malloc函数向系统堆管理器申请一段内存给当前程序使用malloc返回的是一个指针这个指针指向申请的那段内存。malloc刚申请对的内存尚未用来存储数据malloc无法预知这段内存会被用来存储什么类型的数据所以malloc无法返回一个具体类型的指针解决方法就是返回一个void *类型的指针告诉外部我返回的是一段干净的内存尚未确定类型。所以我们在malloc之后可以给这段内存读写任意类型的数据 3void *类型的指针指向的内存是尚未确定的因此我们后续可以使用强制类型转换将其转化为各种类型。这就是void类型的最终归宿就是被强制类型转换为一个具体的类型 #include stdio.hint mian(void)
{//void a; //这条表达式会报错因为编译器无法解析变量a的数据类型int *p (int *)malloc(sizeof(int)); //申请了一个int类型字节大小的内存空间return 0;} 4void类型一般都是使用void *而不是仅仅使用void