变量,指针,地址之间的关系,以及注意事项
创作时间:
作者:
@小白创作中心
变量,指针,地址之间的关系,以及注意事项
引用
CSDN
1.
https://m.blog.csdn.net/qq_55546044/article/details/141966019
在C语言中,变量、指针和地址之间的关系是编程的基础。本文将从概念出发,逐步深入讲解变量、指针、函数名、结构体变量和数组名等概念及其相互关系。
1、概念
无论是变量还是指针,都是由值(value)和地址(address)组成的。理解这一点是掌握C语言编程的关键。
2、变量
变量是程序中用于存储数据的内存空间。每个变量都有一个唯一的地址,可以通过取地址运算符(&)获取。例如:
int a = 10;
printf("%p", &a); // 输出变量a的地址
3、指针
指针是一种特殊类型的变量,其值为另一个变量的地址。通过指针,可以直接访问和操作内存中的数据。例如:
int a = 10;
int *p = &a; // p是指向a的指针
printf("%d", *p); // 输出a的值
4、函数名
函数名代表函数本身的地址。当函数名作为参数传递时,函数名和&函数名的作用相同,都是传递函数的地址。例如:
void func() {
printf("Hello, World!");
}
void (*p)() = func; // p是指向func的函数指针
p(); // 调用func函数
5、结构体变量
普通类型的变量(int、char等)和结构体类型变量(struct、union、enum)与指针的关系相同,只是指向的数据类型不同。以下是结构体成员的几种访问方式:
struct Person {
char name[20];
int age;
};
struct Person p = {"Alice", 25};
struct Person *pp = &p;
printf("%s", p.name); // 直接访问
printf("%s", (*pp).name); // 通过指针访问
printf("%s", pp->name); // 通过指针访问(更简洁的方式)
6、数组名
数组名本质上是一个指针,指向数组的第一个元素。数组的使用需要注意以下几点:
- 数组名不能被赋值
- 数组名不能被改变
- 数组名可以作为函数参数传递
例如:
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr; // p指向数组的第一个元素
printf("%d", *p); // 输出数组的第一个元素
printf("%d", arr[0]); // 同样输出数组的第一个元素
通过以上内容,我们可以清晰地理解变量、指针和地址之间的关系,这对于编写高效、安全的C语言程序至关重要。
热门推荐
家居选购指南:从功能到风格,打造理想居住空间
科技招商:新时期招商引资的有效途径
实验室培育钻石与天然钻石的异同:从结构特性到鉴定方法
比艾司唑仑疗效好、副作用小的4个催眠药,一文总结
黄牌、蓝牌、绿牌、白牌电动车,到底有什么区别?哪一种要驾照?
2024年二级建造师的主要工作职责 就业前景如何
去除各种污渍的小窍门,后悔没有早知道!
想养花没有土?3个“方法”,自制营养土,养花特别好,长爆盆
牙齿胀痛引起的太阳穴痛怎么回事
2024年湿地公园行业分析:湿地公园行业将向绿色环保方向发展
如何通过观察判断机油是否需要更换?半合成机油的使用寿命如何评估?
如何正确更换轮滑轮子以确保滑行安全?轮滑轮子更换有哪些关键步骤和注意事项?
AST/ALT比值偏低
“贫血好了就能停?”关于补铁补血的3大误区!
认识急性呼吸窘迫症候群(ARDS):预防、诊断与治疗策略
一次发酵超软土司
如何用电流表或万用表测电流
印度尼西亚清关及关税政策详解
避雷针、防雷带和避雷器的安装要求详解
家庭关系修复中心:让破碎家庭重获幸福
断食48小时对身体有什么影响
如何提高吸水树脂的吸水速率?五种有效的方法
激活社保卡金融账户需要哪些步骤?
苹果枣,皮薄肉嫩正当季
6款适合团队使用的在线协作文档工具:功能、费用与特色对比
玻璃瓶装牛奶可以微波炉加热吗?——家庭厨房安全指南
从“小牛”到“独行侠”:NBA球队改名背后的深层文化考量
SSID是什么意思?无线网络名称背后的小知识详解
黄豆芽怎么泡发做豆芽?揭秘简单又健康的发豆芽方法
三七粉怎么吃才有效?吃多了会上火吗?分享正确的吃法和禁忌