002_指针-间接访问、左值、指针常量、指针的指针

指针的间接访问如下:

int a;
int *d = &a;  //d指向变量a的地址

*d = 10 - *d;  //左边的*d 是以变量身份存在,右边的*d是以指针的形式存在
d = 10 - *d;  //这是一条非法语句。

指针常量:

//假设地址100存放了整型数20
*100 = 20; //这种方式为非法形式

*((int*)100) = 20;  //合法方式,

/*
 * 解析: (int*)100是将100强制转换成指向内存地址100处且存放的值为int型的指针常量。
*        *(int*)100 = 20, 是将整型值20放到硬件地址为100的地方。
 */

指针的指针:

/*指向指针的指针*/
int a = 12;    //1
int *b = &a;   //2
int **c = &b;  //3

/*
 * 解析:
 *      **c需要右结合性,从里向外进行分析。
 *      由第3行 **c = &b,右结合性:
 *      ==> c = &b; 
 *      ==> *c = *(&b) = b = &a;
 *      ==> **c = **(&b) = *(*&b) = *b = *(&a) = a;
 *      故可以推导出 **c = a, 即c是指向指针的指针。 
 */

指针表达式:

char ch = 'a';   //ch是字符变量,内容是字符'a'
char *cp = &ch;  //cp指向字符变量&ch

/*
 * 解析:
 *     1. &ch可以作为右值,表示变量的地址。
 *     2. &ch不可以作为左值,违法操作。
 *     3. *cp = 'a', cp指向 'a'的地址。
 *     4. *cp + 1 = 'a' + 1 = 'b',内容+1
 *     5. *(cp+1)指向ch地址的下一个单元内容。
 *     6. ++*cp, 右结合性可知,++(*cp) = 'a'+1 = 'b'
 *     7. (*cp)++ = ++*cp
 *     8. *cp++ = *(cp++) = *(cp+1)指向ch的下一个单元。
 *     9. ++*++cp,右结合性,++*(++cp)即ch的下一个单元++*(ch下一个单元)
 *        即对ch下一个单元的内容+1.
 */

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值