C语言基础 指针与数组 小鱼儿 2022-07-28 06:26 163阅读 0赞 一、数据的地址和通过地址访问数据 1、基本的数据类型的地址 int a;==>&a//变量a的地址 2、数组的地址 int a\[5\]; ==>&a,a,&a\[0\] 3、函数的入口地址 函数名 或者 &函数名 4、通过地址去访问内存中的数据 通过间接访问运算符\*访问内存中的数据 二、指针的基本概念 1、定义: 变量的地址称为变量的指针。 存放指针的变量称为指针变量,指针也是一个变量,它存储其他变量的地址。 【注意】每个指针变量只能指向一种特定类型的变量。 2、声明和初始化、赋值 详见4.c 3、使用指针访问内存单元 指针前面加\*,表示指针所指向的内存单元 4、指针变量的大小(占用内存空间的大小) 与指针所指向的数据类型的大小没有关系,与操作系统的位数有关系。 指针是一个无符号整数。 5、void 指针 void \*p:通用指针,代表可以指向任意类型。 【注】使用指针访问内存的方法 1、指针在声明和赋值的时候一定要正确,明确指针到底指向谁。 2、根据指针的指向关系,画出内存单元图,找出指针所指向的内存单元。 三、指针与数组(掌握) 数组名代表数组中第一个元素的地址,可以将数组名赋值给与其相同数据类型的指针。 使用数组名访问数组,与使用这个指针访问数组,效果一样。 四、指针与函数(掌握) 1、指针作为函数的参数,传递的是地址,通过地址间接访问内存单元,可以修改指定的内存单元。 练习: 1、使用函数交换两个整型变量,调用函数结束后,两个 整型变量的值真的交换了。 2、写一个函数sumAndMinus,可以同时计算2个整型变量的和与差,函数执行完毕之后,返回和与差。 参见11.c 2、数组作为函数的参数 数组作为函数参数,实际上需要传递数组首地址,即这个参数是指针类型。 3、指针作为函数的返回值 参加13.c 五、【扩展】指针的运算(了解) 详见14.c 1、加 加1:加上指向的数据类型的大小。 两个指针相加:无意义。 2、减 减1:减去指向的数据类型的大小 两个指针相减:表示两个指针所指向的变量之间相差的元素个数(常常用在数组中) 3、比较 两个指针的比较,实际上是两个指针所指向的变量的地址进行比较(两个指针所指向的数据类型必须相同,否则比较无意义)。 六、【扩展】const修饰的指针(了解) 详见15.c 1、const关键字 常量 (1)const 数据类型 变量名=变量初值; (2)数据类型 const 变量名=变量初值; 【注】常量在声明的同时必须初始化,否则无意义。 2、const修饰指针 (1)const int \*a;和int const \*a; a的指向可以修改; a指向的内容不能修改 (2)int \*const a; a的指向不能修改; a指向的内容可以修改 (3)const int \* const a; a的指向不能修改; a指向的内容也不能修改 【注】const 修饰谁,谁不能修改
还没有评论,来说两句吧...