数据类型概念
-
“类型”是对数据的抽象
-
类型相同的数据有相同的表示形式、存储格式以及相关的操作
-
程序中使用的所有数据都必定属于某一种数据类型
数据类型的本质:
-
数据类型可理解为创建变量的模具(模子);是固定内存大小的别名
数据类型的作用:编译器预算对象(变量)分配的内存空间大
数据类型的封装:
1、void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据
4、void指针的意义:
C语言规定只有相同类型的指针才可以相互赋值
void*指针作为左值用于“接收”任意类型的指针
void*指针作为右值赋值给其它指针时需要强制类型转换
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void main31()
{
int a; //告诉编译器分配4字节内存
int b[10]; //告诉编译器分配40字节内存
printf("b:%d b+1:%d &b:%d &b+1:%d\n",b,b+1,&b,&b+1);
//b与&b结果一样
//b+1与&b+1结果不一样 //因为b与&b所代表的数据类型不一样
// b代表数组首元素的地址 // b的整个大小就是数组首元素的大小(sizeof(b)特殊) //所以b+1 代表数组首元素加一 所以加了4个字节 b[1]-->b[2]
//&b代表的整个数组的地址 //&b的整个大小就是整个数组的大小 //所以&b+1 代表整个数组加一 所以加了40个字节
printf("sizeof(b):%d\n",sizeof(b)); //40
printf("sizeof(a):%d\n", sizeof(a));//4
system("pause");
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void main31()
{
int a; //告诉编译器分配4字节内存
int b[10]; //告诉编译器分配40字节内存
printf("b:%d b+1:%d &b:%d &b+1:%d\n",b,b+1,&b,&b+1);
//b与&b结果一样
//b+1与&b+1结果不一样 //因为b与&b所代表的数据类型不一样
// b代表数组首元素的地址 // b的整个大小就是数组首元素的大小(sizeof(b)特殊) //所以b+1 代表数组首元素加一 所以加了4个字节 b[1]-->b[2]
//&b代表的整个数组的地址 //&b的整个大小就是整个数组的大小 //所以&b+1 代表整个数组加一 所以加了40个字节
printf("sizeof(b):%d\n",sizeof(b)); //40
printf("sizeof(a):%d\n", sizeof(a));//4
system("pause");