变量,指针,地址之间的关系,以及注意事项
创作时间:
作者:
@小白创作中心
变量,指针,地址之间的关系,以及注意事项
引用
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语言程序至关重要。
热门推荐
网贷平台停止催收的原因及应对策略
C语言教程:理解与使用移位运算符
庙会活动筹备方案:如何打造一场精彩纷呈的庙会
股东权益知多少:解密股东领取工资、举报偷税与费用冲销规则
如何加强工程项目内控管理
资金面观察:2月资金面延续偏紧态势,关注3月末资金利率波动
缓解秋冬季咳嗽与喉咙痒的有效方法与注意事项分享
人体吸入甲醛的7个征兆?最有效的四个除甲醛方法
履行合同承诺函要包括什么内容
白酒开瓶后能放多久?这些细节你注意到了吗?
法院立案程序详解:时间要求与纠错机制
解密2024年诺贝尔生理学或医学奖:为临床带来了什么?
ICMP协议详解及尝试用ping和tracert捕抓ICMP报文
吃干东西时吞咽困难咋回事
左后脑勺疼痛的原因及缓解方法
轧辊模具设计与维护:金属成形解决方案全解析
CA6140卧式车床的维修第六章设备润滑、保养和维修
AI: 大模型中的编码器认识
如何选择合适的家具尺寸?这些尺寸选择对居住体验有何影响?
五行金木水火土各主什么,每个五行属性有什么不同
天线的极化原理及其在通信系统中的应用
虾头里是“屎”还是“黄”,到底能吃不?虾有3不吃,看完涨知识
入烧常识:动圈耳机、动铁耳机、静电耳机发声原理
安全一“夏” 全力以“护”:贵州交警扎实开展夏季交通安全专项整治行动
人体工学椅选购指南:打造健康办公环境
药用级甘油性质及用途
计算机网络:运输层 —— TCP 协议概述与 TCP 报文段首部格式
学习口才:提升表达能力、培养自信和增强交际能力
小舌头发炎肿痛怎么办
除草剂药害怎样防治?防治除草剂药害的措施