所有的数组名都是指针而且是常量指针,不能对其赋值!这句话是正确的吗?
所有的数组名都是指针而且是常量指针,不能对其赋值!这句话是正确的吗? 问题点数:0、回复次数:15Top
1 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-07-02 03:46:03 得分 0
对Top
2 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-07-02 03:46:28 得分 0
类似的还有函数名Top
3 楼htqx(航天奇侠)回复于 2006-07-02 03:47:59 得分 0
正确。
参数中的数组有点不同。
Top
4 楼A_B_C_ABC(黄瓜@YouCanDoIt)回复于 2006-07-02 07:55:53 得分 0
我觉得可以这样理解,那将使问题简化。
数组名是不是指针,在csdn的高手中也存在争议。去年一个呢称为“飞天御剑流之杀神一刀斩”的星级高手就坚决反对数组名是常量指针的说法,同意他的观点的人也不少,结果形成两派观点,谁也说服不了谁。Top
5 楼houdy(致力于图像/图形领域,成为有思想的程序员)回复于 2006-07-02 09:23:39 得分 0
所有的数组名都是指针而且是常量指针,不能对其赋值!这句话是正确的吗?
>> 错误的,虽然在很多情况下,他们是可以相互替换的,但是他们是完全不同的两个概念。
不要被数组名是常量指针这样的说法"忽悠"了.具体的分析看这个网址:
http://c-faq.com/aryptr/aryptr2.htmlTop
6 楼triace_zhang(『雪梨码头』)回复于 2006-07-02 09:29:32 得分 0
不认为数组名是个常量指针。一个常量指针是不能直接赋值给非const变量指针参数的。Top
7 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-07-02 12:34:18 得分 0
一个特殊的指针而已,除非你否认一个数组名并不指向一段内存地址Top
8 楼triace_zhang(『雪梨码头』)回复于 2006-07-02 12:39:16 得分 0
汗,如果这么说,那么除了常量表里面的常量,其他所有的都是指针,都指向一段内存。
int a = 1; a也指向一段内存,所以a也是个指针?Top
9 楼jeansberr(松树棚子)回复于 2006-07-02 13:14:03 得分 0
“不认为数组名是个常量指针。一个常量指针是不能直接赋值给非const变量指针参数的。”
我理解的常量指针是个指向常量的指针。数组名是不是可以理解为一个指针常量?Top
10 楼fdimim(猿莫求愚√))回复于 2006-07-02 13:31:44 得分 0
纯粹路过也学习了。
houdy(致力于图像/图形领域,成为有思想的程序员) 的那个链接讲的很明白。Top
11 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-07-02 13:58:49 得分 0
int a = 1
如果你可以这样用:int *p = a,那么a就是指针Top
12 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-07-02 14:00:13 得分 0
我认为,只要某一个变量在这样的语句中:cout << p; 打印出来的是一个16进制的内存地址的话,这个p就是一个广义上的指针Top
13 楼triace_zhang(『雪梨码头』)回复于 2006-07-02 14:23:58 得分 0
纯理论和实现是不同的,如果从理论上来谈,指针和数组是不同的。从编译器实现的角度上,任何实例都是内存块的分配和操作,从这种意义上来说,任何变量,包含常量,都是指针(内存块读写)的实现。如果把这个叫做广义指针的话,我没意见。Top
14 楼lddLinan(不再五行中)回复于 2006-07-02 15:35:28 得分 0
可以把数组名看成引用,不能被修改,必须初始化Top
15 楼yulin001122()回复于 2006-07-02 21:43:08 得分 0
*a 可以用吗??
a = b可以用吗??
是不是常量数组 这种问题感觉没有任何意义 好象就是蛋早还是鸡早,就算你赢了又能怎么样呢??
Top




