(十四)C语言高级编程

本文详细介绍了C语言中的高级编程概念,包括指针的定义、算术运算、指针与数组的关系,以及函数的定义、调用、传参方式。此外,还讲解了结构体的字节对齐规则和共用体的特性,以及枚举在编程中的应用。通过本文,读者能深入理解C语言中这些核心概念。
一、指针
1、地址:内存的基本单元是字节,每个字节都有一个编号,这个编号就称为地址
指针:地址就是指针
指针变量:专门用来存放地址的变量
2、定义:存储类型 数据类型 *指针变量名
存储类型:指针变量的存储类型
数据类型:指针所指向的变量的数据类型
指针的类型:数据类型*
int *p = NULL; //定义指针时一定要对指针进行初始化

int a = 10;
int *p = &a;
指针就是操作内存的工具
指针的四要素:1、指针的类型 2、指针所指向的类型 3、指针所指向的内存 4、指针所占内存的大小

3、指针的算术运算:p+n:向地址增大的方向移动了n个数据
注:指针的算术运算必须在一块连续且有效的内存上操作,指针类型必须一致,指针的数据类型明确了指针所能操作的内存范围,在使用指针时,一定注意不要越界
可以通过强制类型转换改变指针操作内存范围的大小

4、指针与数组
-->数组名的含义:1、代表一个数组 2、代表数组首元素的地址
-->指针与二维数组
通过一级指针操作二维数组,必须要将二维数组强制转换为(int *)类型,然后用一维数组的方式去操作,因为二维数组在内存中的存储方式实质上也是一维的
-->指针数组与数组指针:
指针数组:本质上是个数组,这个数组的元素是指针 int *p[ 3 ]
数组指针:本质上是个指针,指针是指向一个数组的指针 int (*p)[ 3 ]
-->多级指针:指针的指针
-->const修饰的指针:(左数右指)
防止指针所指向的内容被修改,或者指针的指向发生改变
const int *p; *p不能被修改,p可以被修改
int *const p; *p可以被修改,p不可以被修改
const int *const p; *p和p都不能被修改
-->void修饰的指针:不知道操作的内存范围有多大,只是指向对象的首地址,用之前必须进行强制类型转换
当void*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值