鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: Tzdner_C

[技术交流] 关于数组名不能++,不能--问题,驳倒C语言书上的说法

  [复制链接]
发表于 2012-6-16 22:56:15 | 显示全部楼层

这个过程中,其实每次解引用都从内存中取值了。按照我前面的说明,像int a[10][10][10]这样的“变量”占据的“内存”是非常大的。如*a理论上说,就应该取得整个int[10][10]这样的数组。只不过,这个数组立即被转化为指针int(*)[10].所以如果你忽略中间读数组的过程,显然就值看见指针类型从int(*)[10][10]变化到int(*)[10]。至于这个过程里这两个指针的值没有改变,那是这个例子的巧合而已,你换下如打印
a[1][2][3]那么就不仅仅是类型的转换,值也在转换了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-16 23:03:20 | 显示全部楼层
狂傲天 发表于 2012-6-16 22:22
我感觉楼主说得有道理,变量不能++,--也是有的,变量应该是运行时候内存中有存放位置的,常量应该是指在运 ...

int main()
{
        char* p;
        _asm
        {
                call $+5
                pop  p
        }
        printf("%d\n", 10);
        printf("常量的地址:%p, 值:%d\n", p+4, *(p+4));
};

上面为获取常量printf("%d", 10); 中常量 10的地址的方法。 由于不同的编译器,这个常量地址的计算方式不同,所以此代码只试用与vc6.0 Debug环境下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-17 14:28:56 | 显示全部楼层
再再论指针.zip (258.56 KB, 下载次数: 6)
以前在csdn看到的一篇博客,整理下来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-6-17 19:32:23 | 显示全部楼层
楚门 发表于 2012-6-17 14:28
以前在csdn看到的一篇博客,整理下来了

这个我看过。。。有些东西还是解释不清楚,这论坛还有一篇帖子《深入理解指针的奥秘 》 好像是这名字,写的也很好。。。不过也存在很多争议。。。    估计也只有C标准你那个解释吧。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-17 23:47:57 | 显示全部楼层
、、、、、、、、、、、、
、、、、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-18 01:41:48 | 显示全部楼层
围观:看高手们争论也能收益不少啊....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-23 18:40:55 | 显示全部楼层
仰望天上的光 发表于 2012-6-16 22:42
*作用在指针上,或者解引用,就是取得该指针所指向的值。
int a[10][10][10];
printf("%d", ***a);

#include <stdio.h>
int main ()
{
        int a[10][10][10] = {1};
        printf("%d\n", ***a);
}

//输出

1
Press any key to continue
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-24 08:07:53 | 显示全部楼层
深奥哦  指针真是让人头疼:o
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-24 09:23:22 | 显示全部楼层
书上的也就是一些所谓的专家编出来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-24 11:32:09 | 显示全部楼层
yuprxk 发表于 2012-6-23 18:40
#include
int main ()
{

你想说明什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-24 17:45:56 | 显示全部楼层
仰望天上的光 发表于 2012-6-24 11:32
你想说明什么?

我对指针,不是很理解,你能不能,讲一讲,关于 指针的指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-24 18:36:47 | 显示全部楼层
yuprxk 发表于 2012-6-24 17:45
我对指针,不是很理解,你能不能,讲一讲,关于 指针的指针

指针,是一个类型。通常说的int*就是一个指针,它指向一个类型的数据,这个类型是int

指向指针的指针ru int**,是一个指针。这个指针指向一个类型的数据,这个类型是指针,这个指针指向一个类型,这个类型是int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 17:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表