理解C中的类型和变量

理解C中的类型和变量

C语言用的很多了,想要真正理解其精髓,还需要懂它们设计背后的意义

类型是大小,变量是内存空间的别名。

int i;
char c;

int是一个整型,占4个字节;char是字符型,占1个字节。不论是什么类型,它们的实际作用就是约定一个固定大小的内存。叫什么名字其实无所谓,你愿意也可以用typedef将int改成ant,bnt,cnt…,怎么开心怎么来,但是不论你给它起什么名字,它的意义就是代表4个字节的空间。当你定义了好多的个4个字节的空间,你如何来区分它们?双胞胎都长的一样,所以需要给每个起一个不同的名字,比如大宝and二宝。C语言中,这个名字就叫变量(名)。

int ;
int ;
int ;

当你写下这三个定义的语句,相当于要了12个字节内存。它们分成3块,每一块大小一样,都是4个字节,可是他们看起来是如此一样。当你想使用第二块的那4个字节的时候,该怎么从3个中指定?如果是下面这样来定义,相信就容易多了

int a;
int b;
int c;

每4个字节的内存区域都被做了不同的标识,第一块的那4个字节就命名为a,以此类推,后面那两块分别起名b和c。

所以,类型就相当于一个模子,模子就是固定的东西。C语言中的数据类型就是这样的模子,它们代表着约定俗成,固定大小的内存空间。再往深了看,模子的大小也是看你想表示的数要多大的。ASCII码用一个字节的7位来表示一个字符,2的7次是128所以ASCII一共只有128个字符。因为它要表示128个字符,所以一个字节就够了,所以char字符型它就一个字节。再有,无符号数和有符号数,因为无符号数的最高位不需要被占用,所以它所能表示的范围就比有符号数大很多。

理解了语言的本质,有助于更好的编程,看待的角度也会不一样。

以后再来编写C程序的时候,当你写下int a这样的语句的时候,脑海中应该很清楚的知道你将要使用4个字节,而不再是简单的“定义了一个整型变量a”。C语言的精髓是内存和指针,指针归到底也是一片内存,只不过存的东西是内存单元的编号而已。

发布了42 篇原创文章 · 获赞 18 · 访问量 7552

猜你喜欢

转载自blog.csdn.net/weixin_44395686/article/details/104940588