数组与指针

本文详细解释了指针的基本概念,包括如何确定指针类型、指针所指向的类型、指针的值、指针所占内存大小等内容,并区分了指针常量与常量指针的不同之处,介绍了NULL和0的关系及空指针的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Q:如何确定指针类型?
A:声明语句中除指针名字外的部分即为指针类型。
例:int* ptr; //指针类型为int*
char * ptr; //指针类型为char*
int* (* ptr)[4];//指针类型为int*( *)[4]
Q:指针所指向的类型如何确定?
A:去掉指针声明语句中的指针名和指针名左边的指针说明符;
例:int*ptr //指针所指向的类型为int
char*ptr //指针所指向的类型为char
int**ptr //指针所指向的类型为int*
int(*ptr)[3] //指针所指向的类型为int()[3]
int*(ptr)[4] //指针所指向的类型为int()[4]
Q:指针的值指的是什么?
A:指针的值即为指针所指向的内存区或者地址,是指针本身存储的数值,这个值被编译器当做一个地址。
Q:指针所占的内存为多大?
A:在32位的平台上,指针本身占四个字节的长度,可由函数sizeof测得。
Q:指针常量和常量指针的区别?
A:指针常量即指针本身是一个常量,不可修改,但其指向的内容(即地址)可以修改;
常量指针即指向一个常量的指针,即指向的是常量,不可修改,指针本身可以修改。
Q:NULL和0
A:NULL被定义为0或者”(void*)0”,两个值几乎相同,纯粹的0或者一个void指针都能自动被转换成所需的任何类型的指针。
Q:NULL和零是否相等?
A:就两者的比较结果来说,NULL确实为0;如果就存储方式和整型值来说,NULL并不必须被存储为整型值0。
Q:空指针的用法有哪些?
A:(1)用空指针终止对递归数据结构的间接引用;(2)用空指针进行函数调用失败的返回值;(3)用空指针做警戒值。
Q:万能指针的用途有哪些?
A:void指针指向某个对象,但该对象不属于任何类型。C语言中任何时候都可以用其他类型的指针来代替void指针,也可以用void指针来代替其他类型的指针。
Q:指针数组和数组指针。
A:指针数组符合一般数组的特性,除其元素为指针外,和一般数组没有区别;数组指针指的是指向数组的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值