二重指针的问题
时间:2010-08-19
来源:互联网
错误写法:警告:从不兼容的指针类型赋值( *ppi = &pi)并且执行时段错误
- #include "stdio.h"
- main()
- {
- int i;
- int *pi;
- int **ppi;
-
- i = 1;
- pi = &i;
- *ppi = π
-
- printf("i is %d\n\n",i);
- printf("pi is %d\n\n",*pi);
- printf("ppi is %d\n\n",**ppi);
- }
- #include "stdio.h"
- main()
- {
- int i = 1;
- int *pi = &i;
- int **ppi = π
-
-
-
- printf("i is %d\n\n",i);
- printf("pi is %d\n\n",*pi);
- printf("ppi is %d\n\n",**ppi);
- }
作者: cu养猪小能手 发布时间: 2010-08-19
作者: zhangsuozhu 发布时间: 2010-08-19
回复 zhangsuozhu
我这里编译出错啊。
修改:不是编译出错,是执行的时候 段错误
作者: cu养猪小能手 发布时间: 2010-08-19
作者: zhangsuozhu 发布时间: 2010-08-19
第一种写法编译的时候第十行出警告::从不兼容的指针类型赋值,执行的时候段错误。
作者: cu养猪小能手 发布时间: 2010-08-19
想了半天不对.怕以把刚才说的给删了
作者: zhangsuozhu 发布时间: 2010-08-19
我用的是 gcc 32位linux的。
作者: cu养猪小能手 发布时间: 2010-08-19
*ppi = π
晕.看出来了. ppi = π才对
作者: zhangsuozhu 发布时间: 2010-08-19
大哥,不行啊,编译的时候报错了:错误:单目‘&’的操作数必须是左值
作者: cu养猪小能手 发布时间: 2010-08-19
- i = 1;
- pi = &i;
- *ppi = π
*ppi = π 句有问题.为什么这么说呢, ppi里存的是指向另一个内存地址的地址.也就是pi的址.
所以 ppi = &pi 或 *ppi = pi
作者: zhangsuozhu 发布时间: 2010-08-19
ppi = &pi
*ppi = pi
两种写法编译都通过。第二种还是段错误。
作者: cu养猪小能手 发布时间: 2010-08-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28