C语言指针的理解

文章介绍了C语言中的指针概念,包括一级指针和二级指针的声明与使用。通过示例代码展示了如何通过指针获取变量的地址和值,以及如何通过二级指针间接访问一级指针所指向的变量。作者强调了指针在内存地址操作中的作用,并提供了一个简单的程序来帮助读者理解这些概念。
摘要由CSDN通过智能技术生成

        指针是C语言的一大特色,其中有很多指针类型,我自己学了一遍,发现过程理解虽然没问题,但是学完发现已经乱的差不多了,在《C语言避坑指南》中加入指针,以梳理学过的知识,巩固所学避免出错,同时希望能帮到大家。

        指针变量,即存放其他变量地址的一种变量。
        声明方式: 变量类型 *变量名1;
        可以用 *指针变量名 取指针变量中存放的地址中的值; 注意在定义指针变量时, * 是表示指针变量的固定写法.
        变量类型 **指针变量名; 表示一个二级指针,其使用方式与一级指针类似。
        我们通常用二级指针存放(指向)一级指针的地址 一级指针存放(指向)普通变量的地址
        下面将展示一些初级用法以帮助各位同学加深理解:

#include<stdio.h>


int main(){
	int a;
	int *p1;
	int **p2;
	a = 10;
	p1 = &a;
	p2 = &p1;
	printf("变量a的地址: 0x%p\n", &a); // 变量a的地址: 0x000000000061FE1C
	printf("一级指针p1的地址: 0x%p\n", &p1);  // 一级指针p1的地址: 0x000000000061FE10
	printf("二级指针p2的指针: 0x%p\n", &p2);  // 二级指针p2取值: 0x000000000061FE1C

    // 二级指针指向一级指针地址,一级指针地址中存放了变量a的地址
	printf("二级指针p2取值: 0x%p\n", *p2);  // 二级指针p2取值: 0x000000000061FE1C


    // 一级指针指向普通变量地址,及a的地址,取变量a地址的值,即为10  
	printf("一级指针p1取值: %d\n", *p1);  // 一级指针p1取值: 10
	
    // 从右到左运算,先拿到p1中的变量a的地址,再通过变量a的地址拿到变量a的值
    printf("二级指针p2取两次值: %d\n", **p2);  // 二级指针p2取两次值: 10
	return 0;
}

下面附一张图展示原理:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值