学习指针时所遇到的问题

1.什么是指针?指针的类型和指针指向的类型的区别?什么是指针的值?
指针是变量,系统为指针分配内存空间,指针内部存的值是特殊值–地址。
指针的类型意思是 这个指针是什么数据类型的指针;
指针指向的类型是访问所指向的内存空间时,指针所指向的类型,两者概念不同。
指针的值是指针所指向的内存区或地址。
2.p和*p分别对应什么?p++和 *p++又分别表示什么?
p对应p对应的内存空间,*p对应p指向的 内存空间。p++是地址进行加法, *p++是p指向的内存空间的值加1.
3.什么是常量指针?什么是指针常量?二者的区别是什么?
常量指针是指向一个常量的指针,本质上是指针;指针常量是指针本身是一个常量,指针的地址不能修改,但是指针所指向的内存空间的值能够改变。
4.字符0和数字0和\0有什么分别?
字符0表示,这个0是一个字符,在程序里面的表示方法是‘0’,数字0是一个整形数字0,类型是int型,\0是空字符。用ascll值来表示的话,字符0是48,数字0和\0,ascll是0。
5.strlen和sizeof的区别?
strlen是求字符串的长度,一定只能是字符串,测量字符数组的长度时,不能用strlen;sizeof是求数据类型所占内存空间的大小,以字节为单位。
6.空指针的用法?
1.在定义指针时用到,用于防止野指针。
2.用于做返回值。
3.用作警戒值。
7.字符串处理函数的参数必须是字符串吗?可以是字符地址吗?
有些字符串处理函数的参数可以是地址,这意味着可以是字符地址,例如strcpy,第一个参数必须是字符串,但是第二个参数就只要求是地址。具体用法可以用man+函数名 来查询。
8.右左法则的用法?
先从变量开始,先向右看,然后向左看;当遇到括号时就转移方向,括号内的所有内容分析完毕就跳出括号。遇到)或者[或者;就意味着是函数,数组和变量,遇到*就意味着是指针。
9.指针的长度是多大?用sizeof来计算不同类型的指针结果是什么?长度与什么有关?
由于指针的值是地址,这就与操作系统的位数有关,在不同的操作系统下,指针的长度不同,在32位操作系统是4个字节,在64位是8个字节。用sizeof来计算不同类型的指针结果都相同,是一个定值4或8(结果与操作系统有关)。
10.*实质上是什么算法?&实质上是什么算法?
* 是取值的算法, 例如 * p就是取出p所对应的内存空间的值。&是取出变量的地址。&ch,就是取出字符型变量ch的地址?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值