当前位置: 首页 > 编程笔记 >

C语言变量类型的深入分析

景河
2023-03-14
本文向大家介绍C语言变量类型的深入分析,包括了C语言变量类型的深入分析的使用技巧和注意事项,需要的朋友参考一下

C语言是强类型语言,定义变量时必须声明变量的类型,赋值的时候也只能是同种类型变量赋值。

一。变量的类型告诉编译器怎么处理这个变量的数据。

         虽然c语言是强类型语言,但是不同类型的变量通过类型转换也可以赋值,甚至指针变量可以转化为int类型,转化为char类型。从本质上来说,变量类型只是告诉编译器应该怎么处理这个变量,所以不同变量可以通过显示类型转换来赋值。理解这点对我们理解指针的转型非常重要。例如

int a = 10; 
int **ptr = &a; 
int b = (int)(*ptr); // *ptr是一个指针,但是通过转型为int,我们可以将其赋值给b。 

如果不明白变量类型的本质,那么会以为第三行代码是错误的。为什么可以这样赋值呢?(*ptr)是一个指针,可是指针也有值,它的值是一个地址,地址其实就是无符号整数。所以我们通过类型转换变成int,这个变量在内存中的数据没有变化,只是对它的解析变化了。如果是作为指针类型,那么数据是作为指针来解析;如果作为int型,那么数据是作为int来解析。事实上,我们还可以将其赋值给char类型。将其转型为char,那么对它的解析就是char类型了,只取数据的一个字节解析成char类型,赋值给ch。

char ch = (char)(*ptr); // 有些编译器会报错,将其改成(char)(int)(*ptr)就可以修正错误了。

二。变量的类型告诉编译器要分配多少内存空间。

        在定义一个变量时,变量类型告诉编译器要分配多少内存空间来存储变量。

char ch; // 1B 
int  i;  // 4B 
long l;  // 4B 
float f; // 4B 
double; // 8B 

顺便说说,如何理解多级指针。例如int **ptr;

当我们遇到二级指针,三级指针时,总是弄不明白各级指针是什么意思。有一种方法比较容易多级指针,将指针作为数组来理解。一级指针是一维数组,二级指针是二维数组,三级指针是三维数组,依此类推。当然有些时候不能这么理解,那就要具体问题具体分析了。

int *ptr1;   // 一维数组 
int **ptr2; // 二维数组 
int ***ptr3; // 三维数组 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 对于 C 语言的变量类型这里有两种说法: 一种是只包含基础的变量类型,如整数型,浮点型等;另外一种则是在上述类型的基础上还包含了一些用户可以定义的复合的类型,如 array,structure 等等。 我们这里只介绍大家通常意义上所认识的前一种基本的 C 语言数据类型。更为复杂的这些数据组合的结构,我们会在后面单独列出。 1. 变量类型 因为 C 语言与需要编译之后才能执行,所以需要对变量指定类型

  • 主要内容:变量(Variable),数据类型(Data Type),连续定义多个变量,数据的长度(Length),最后的总结在《 数据在内存中的存储》一节中讲到: 计算机要处理的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的形式存放在内存中的; 我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最小的可操作单元。 我们不妨先从最简单的整数说起,看看它是如何放到内存中去的。 变量(Variable) 现实生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后

  • 本文向大家介绍深入分析Ruby 变量,包括了深入分析Ruby 变量的使用技巧和注意事项,需要的朋友参考一下 变量是持有可被任何程序使用的任何数据的存储位置。 Ruby 支持五种类型的变量。 一般小写字母、下划线开头:变量(Variable)。 $开头:全局变量(Global variable)。 @开头:实例变量(Instance variable)。 @@开头:类变量(Class variabl

  • 在讲解变量之前,我们先来看一段代码: int x; int y=0; char z='A'; x=6; 在上面这段代码中出现的 x、y、z 都是一个 C 变量。 变量是编程语言中不可或缺的组成部分。它承载这存贮数据以及计算结果等等功能,顾名思义变量就是可以再计算执行过程中变化的量。这节课我们来学习下到底什么是变量。 1. 什么是变量? 变量是程序用来保存计算结果的存储单元,为了方便访问这块存储单

  • 本文向大家介绍C语言新手入门之格式化输出和变量类型,包括了C语言新手入门之格式化输出和变量类型的使用技巧和注意事项,需要的朋友参考一下 前言 C语言作为编程的入门语言,谁都想快一点学会这门编程语言,本文详细介绍了关于C语言格式化输出和变量类型的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 格式化输出 在PHP里面,我们一般都是用echo和var_dump以及print

  • 主要内容:在 for 循环条件里面定义变量,单独的代码块,再谈作用域所谓 代码块,就是由 包围起来的代码。代码块在C语言中随处可见,例如函数体、选择结构、循环结构等。不包含代码块的C语言程序根本不能运行,即使最简单的C语言程序(上节已经进行了展示)也要包含代码块。 C语言允许在代码块内部定义变量,这样的变量具有块级作用域;换句话说,在代码块内部定义的变量只能在代码块内部使用,出了代码块就无效了。 上节我们已经讲解了函数,在函数内部定义的变量叫做局部变量,这节我们接