2.1变量名含义
变量名是一段内存的别名,是给程序员看的,而不是给计算机看的。
int a =5;
编译器分配4个字节内存,并命名该4个字节的空间名字为a(即变量名),当用到变量名a时,就是在使用那4个字节的内存空间.
5是一个常数,在程序编译时存放在代码的常量区存放着它的值(就是5),当执行a=5时,程序将5这个常量拷贝到a所在的4个字节空间中,就完成了赋值操作.
a是我们对那个整形变量的4个字节取的"名字",是我们人为给的,实际上计算机并不存储a这个名字,只是我们编程时给那4个字节内存取个名字好用.实际上程序在编译时,所有的a都转换为了那个地址空间了.编译成机器代码后,没有a这个说法了.a这个名字只存在于我们编写的代码中.
2.2数据类型概念
- “类型”是对数据的抽象
- 类型相同的数据有相同的表示形式、存储格式以及相关的操作
- 程序中使用的所有数据都必定属于某一种数据类型
2.3数据类型的本质是什么
- 数据类型和内存有什么关系
- C/C++为什么会引入数据类型?
2.3.1数据类型的本质
1)数据类型可理解为创建变量的模具(模子);是固定内存大小的别名。
2)数据类型的作用:告诉编译器给该变量分配多大的内存空间
3)利用sizeof(type)求数据类型的大小
int a =100;告诉编译器给变量a分配四个字节的内存;
char b = 'H';告诉编译器给变量b分配一个字节的空间,
2.3.2数据类型的封装
自己定义数据类型:典型的就是结构体:
struct Teacher{
int age;
char name[64];
};
那么struct Teacher就是自己封装的一个数据类型;
-
使用struct Teacher 就可以去定义变量了!
除了结构体外,枚举,共用体,以及通过typedef定义的也时数据类型(后面讲);注意:
强调一下:变量名是这段内存的别名,而变量的值才是保存在这段内存中的值;
2.4typeof关键字
c语言中没有typeof关键字,这是编译器扩展的功能,非标准关键字,不同编译器未必能用。在VS编译器下不能使用,在GCC中可以使用!在Linux内核中经常使用到!
下面这两个等效声明,用于声明int类弄的变量a
typeof(int) a;
typeof('b') a; //相当于获取'b'的类型,定义一个变量a
下面用于声明指针和数组
typeof(int*) p1,p2;
typeof(p1) p2 //p1与p2的类型一致
int *p1,*p2;
typeof(int [10]) a1,a2;
int a1[10],a2[10];
2.4变量值的修改
1.直接修改
2.通过指针修改(直接修改变量名所代表的这段内存的值)
本文详细介绍了C语言中的变量类型,包括变量名的含义、数据类型的定义及其本质,强调了数据类型在内存分配中的作用。还提到了自定义数据类型如结构体,并简单提及了非标准的typeof关键字在不同编译器下的应用。

634

被折叠的 条评论
为什么被折叠?



