当前位置: 首页 > news >正文

C语言| 指针变量的初始化

C语言| 指针的优点-CSDN博客

C语言| 指针变量的定义-CSDN博客

【指针变量的初始化】

1.定义:用赋值语句,让一个指针变量得到另一个变量的地址,使它指向该变量。

2. & 取地址运算符

功能:取其内部所存变量地址,所指向变量中的内容。

指针变量只能存放地址!!!只能用&取地址,对指针变量进行初始化。

3. 举例:

int a, *b; //定义变量a, 指针变量b

b = &a; //指针变量的初始化,用&(取地址运算符)

i. 把变量a的地址,放到了指针变量b中,通过a的地址,指针变量b就能找到a的数据,所以指针变量b就指向了变量a。

ii. a和b是不同的变量,修改它们的值互不干扰。指针变量b是a的地址,b是内存单元的地址,而a是变量a里面的数据,a是内存单元的内容。[一定要区分开内存单元的地址,和内存单元的内容]

iii. int *b; //定义指针变量时,*b只是一个声明,没有其他含义。

上面 b = &a; //给指针变量初始化,当b指向a之后,*b 就完全等同于 a了,可以相互替换。

【指针常见错误】

1 引用未初始化的指针变量

未初始化的指针变量,指向的是无效地址。

只能用&取地址,对指针变量进行初始化。

使用scanf(),必须要先给指针变量初始化!!!

2 往一个存放NULL地址的指针变量里面写入数据

指针变量初始化,指向了一个NULL,这么写是错的,但是在实际编程中经常使用,因为后续还会给指针变量二次赋值。(在该指针变量指向有效地址之前,不要往该地址NULL中写入数据)

NULL指向的是内存中地址为0的内存空间。NULL是定义在stdio.h头文件中的符号常量,它表示的值是0。

【程序代码1】变量的初始化

#include <stdio.h>

int main(void)
{
    int a = 10, *b; //*b 表示定义了一个指针变量b

    b = &a; 

    printf("*b = %d\n", *b); //此时*b 完全等于a
    printf("b = %d\n", b); //b里面存储的是变量a的地址

    return 0;
}
/*
在VC6.0++的运行结果为
-----------------------------------------------
*b = 10
b = 1703728
-----------------------------------------------
*/

【程序代码2】指针变量之间的赋值
直接通过指针变量名进行赋值
1 指针变量的基类型,一定要相同
2 在赋值之前,赋值运算符“=”右边指针变量必须是已经初始化过的,才能进行指针变量间的赋值。
3 可以同时定义初始化指针变量。int c = 12;  int *a = &c; int *b = a;

#include <stdio.h>

int main (void)
{
    int *a, *b;
    int c = 12;

    a = &c;
    b = a; //直接指针变量名之间进行赋值

    printf("*b = %d\n", *b); //此时*b完全等同于c
    printf("b = %d\n", b); //b里面存储的是变量c的地址

    return 0;
}

/*
在VC6.0++的运行结果为
-----------------------------------------------
*b = 12
b = 1703720
-----------------------------------------------
*/

相关文章:

  • 如何测试北斗卫星通讯终端的性能?
  • DEBUG:Lombok 失效
  • C++类与对象--6 特性二:继承
  • std::vector<>.emplace_back
  • flutter设置最大高度,超过最大高度时滑动显示
  • 使用frp内网穿透本地的虚拟机
  • spring event事件(四)内部事件(1)ApplicationReadyEvent
  • 介绍Buildroot
  • 2025ICPC南昌邀请赛题解
  • 记录学习的第三十六天
  • ZYNQ Cache一致性问题解析与实战:从原理到创新优化
  • PEFT简介及微调大模型DeepSeek-R1-Distill-Qwen-1.5B
  • mysql不能聚合之数据清洗逗号
  • 第7天-Python+PyEcharts实现股票分时图实战教程
  • OD 算法题 B卷 【需要打开多少监视器】
  • 算法打卡第一天
  • 每日算法刷题Day10 5.19:leetcode不定长滑动窗口求最长/最大4道题,结束定长滑动窗口,用时1h
  • 大模型的开发应用(三):基于LlaMAFactory的LoRA微调(上)
  • CSS之box-sizing、图片模糊、计算盒子宽度clac、(重点含小米、进度条案例)过渡
  • 再议AOI算法
  • 杭州3宗住宅用地收金42.49亿元,最高溢价率51.38%
  • 央媒:安徽凤阳鼓楼坍塌楼宇部分非文物,系违规复建的“假古董”
  • 媒体:演员黄杨钿甜耳环事件仍有三大疑问待解
  • 黄仁勋的新逻辑:从“卖铲人”到“全球AI基建运营商”
  • 人民日报任平:从“地瓜经济”理论到民营经济促进法,读懂中国经济的成长壮大之道
  • 甘肃省白银市一煤矿发生透水事故,3人失联