C语言指针赋值超难?别怕!这里有通俗易懂的小白指南 📅 发布时间:2026/8/25 14:41:23 👁 浏览次数: 很多人觉得C语言最难的是指针。指针着实不太容易把控, 好多人学至指针时就极易陷入困惑, 进而导致后续Java发展之际直接将指针摒弃掉了。但是请相信我指针并没有你想象的那么难。为什么没有那么难因为这是小白课程啊我会尽量给你讲得通俗易懂。首先我们要了解指针是什么记住指针就是地址反过来一样地址就是指针。所以介绍指针前我先来讲一下地址。1 地址在对一个变量予以定义之际, 该变量自身实际上存有三个层面的含义, 其一为变量名, 其二为变量值, 其三为变量地址。例如定义一个整型变量a:int a 10 ;此时变量名为a变量值为10还有一个系统分配给它的地址。我们不能指定变量地址是多少只能由系统分配。有的时候, 在进行变量定义这个操作的时候, 并没有去做初始化这个行为, 那么, 变量所具备的就仅仅只是变量名以及变量地址而已, 而变量的值, 要一直等到给它赋予一个值之后, 才会存在。打个比方定义变量就好像是买房int a;告诉你系统, 我就要购买一间屋子, 叫作a那样名字的屋子, 屋子的体积大小是int型的, 这里面可是规定了必须住进去为整数属性的人, 绝不是实数类型或者字符类型之人, 随后系统会分配出一个地方用来放置a, 而这个地方就等同于房号。你不能规定对于变量去赋予怎样的房号, 也就是地址, 然而呢我们能够瞧这房号究竟是所谓的多少。看房号是多少要用一个取地址的运算符即。是的, 正是每一回我们运用scanf去输入数据之际, 变量前面的那个。的功能就是取出变量的地址。一般情况下, 会把念成“at”, 它存在着一定程度上类似于邮箱地址当中的那个同样也是被念做”at“, at在英文里所表达的是“在哪里”的意思。如果程序有定义 int a;若是如此, a的房号将是a, 假定此房号为1号, 那么, 要是程序后续存有语句:scanf(“%d”, a);意味着输入一个整数放到1号房a中。程序1程序1程序输出a的值和a的地址。程序1运行结果程序1运行结果a的值是能够进行更换的, 举例来说, 头一回a的值是10, 之后a的值发生了改变, 变为了100。但a的地址, 在定义变量那个时候就已经确定了, 这个地址, 我们没办法去进行赋值操作, 并且也没办法使之发生改变。也就是说, 在进行变量定义这个行为的时候, 所涉及的情况是买房, 买房这一行为发生之后就会产生房号。然而, 房间内部居住的人员是能够发生变化的, 具体来说, 最初居住进去的是10, 后续居住进去的则是100。所以这就叫变量因为它的值是可以变的。这个房间可以由不同的人住进去。但每次只能住1人。当数字10进入到这个房间之内的时候, 所输出的a呈现为10的状态 当数字100进入到这个房间里之际, 所输出的a则转变成为100这个数值情况了。程序1运行后所呈现的结果之中, 不同的计算机显现出来的地址兴许并不相同。举例来说, 在你的这台电脑上面进行运行, 或许所显示的a的地址便并非如此了。2 指针指针是一种数据类型指针类型简称指针。那么如果一个变量定义为指针类型语法格式如下数据类型 * 指针变量名 ;如int *p;float *fp;char *cp;那么, 在上文所定义的, 名为p的、名为fp的、名为cp的, 皆是指针变量名, 它们归属于指针类型。指针变量和其他类型的变量有什么区别呢定义一个变量, 使其等于买房这个行为, 那么, 指针变量相对比较大方, 别的变量买房的话是要用于居住的, 然而指针变量买了房却不住人, 它只能住到另外一个变量的地址上去。指示器可是个超级大金主, 它购置房屋并非是为了供人居住, 偌大的屋子仅仅住了另一个变量所对应的房号。重复一遍指针变量不能住人只能住另外一个变量的地址。例如程序里有int a , b ;float x ;int *p1 ;那么, 买下了两间房, 分别是房a与房b, 其中能够居住的是整数类型又买下了一间房, 此房为房x, 里面可以住的是实数类型还买下了一间房, 是房p1, 而房p1所能住的仅仅是房a的地址或者房b的地址。还记得取地址的运算符吗是。所以如果有a 10 ; b 198 是对的。p1 10 ; 是错的。p1 a ; 是对的。p1 b ; 也是对的。但p1 x ; 是错的。可能有人会问为什么p1 x错因为p1的定义是 int *p1它只能等于int变量的地址不能等于其他类型的变量的地址。程序2程序2运行结果程序2运行结果先前讲提过, 每一个变量自身实际上存有着三个层面所蕴含的意义: 变量的名称, 变量的具体数值, 变量所占据的内存地址。如果有定义int a , *p1;a10;p1a;那么, 指针变量的一个名称是p1, 其变量所具有的值是a的地址, 也就是说, 在p1这个房间里所住的是a的房号, 并且, p1自身有着它自己的地址。再看一个例子程序3程序3运行结果程序3运行结果上述程序p1a变量a的值是10a的地址是变量p1的值是p1的地址是当p1b后变量b的值是99b的地址是当p1b后变量p1的值是p1的地址仍然是。今日进行指针初步讲解, 要领是带领大伙领会指针之概念, 需要将程序1、程序2、程序3这三个程序读懂弄明白, 如此便达成今天的任务啦。3 总结本节课介绍了如下内容用以获取地址的运算符为: 。指针变量的定义所遵循的语法形式是数据类型 *变量名;每一个变量均具备三个方面的含义: 该变量的名称可类比为房间的名称, 变量所具有的值就如同房间里居住的人, 变量的地址类似房号。介绍了3个程序来帮助各位朋友理解上述概念。指针存在着更多的用途, 像是结构指针那样, 然而第一步的时候, 我们必须要先弄明白指针的基本概念, 之后才能够去学习更为深入的知识。