Ca(OH)2
关于指针和函数的问题,求大神解释

本人最经无聊,在用c语言(vc6.0)高精度计算的程序。然后想把输入也写一个函数,想让主程序看的清楚一点。函数本身问题不是太大,但是我在调用的时候出现了问题。函数传入的参数是一个数组的地址,和输入个数的限制。但是在实际调用时,我在主程序写:

函数名(&数组名,长度);

程序一直在这行上报错。

但是一旦我写成:

函数名((数组名),长度);

就不会有任何问题。~34!

我虽然知道()和&都是取址符,但是这两个的区别又是什么呢?为什吗会报错呢?

这种情况在别的程序也有发生。但是不经常,(好吧,是我程序编的少)。到底是为什么?!!!!!!$63$

a42840695
居然是如此简单之事
展开Biu

Ca(OH)2 发表于 2013-7-18 00:17

我去。。。。居然是如此简单之事。。。也就是说。。。数组名就已经是指针(地址)了?!!! ...

也不能这样说 二者不是直接的等量关系

[查看全文]
scropioczn
找到的关于数组和指针关系的
展开Biu

找到的关于数组和指针关系的~@97#

描述很详细的

[查看全文]
WindKid
观摩各位大神
展开Biu

观摩各位大神= =目测已受教

[查看全文]
jingyixx
很了解哦
展开Biu

amosJi 发表于 2013-7-20 12:05

你对C/C++很了解哦 好厉害~

我VB得了C!!!

[查看全文]
amosJi
很了解哦
展开Biu

jingyixx 发表于 2013-7-20 10:58

helllo!!!!阿姬!!!!!!!!

你对C/C++很了解哦 好厉害~

[查看全文]
jingyixx
jingyixx回复给帖子:362636
展开Biu

amosJi 发表于 2013-7-20 10:12

Hello Jingyi!!

helllo!!!!阿姬!!!!!!!!

[查看全文]
amosJi
数组名不是指针
展开Biu

jingyixx 发表于 2013-7-20 00:35

数组名不是指针,但是在大多数情况下转化为指向数组首元素的指针

典型的不转化情况:

int ary[5] = {1,2,3 ...

Hello Jingyi!!

[查看全文]
jingyixx
居然是如此简单之事
展开Biu

Ca(OH)2 发表于 2013-7-18 00:17

我去。。。。居然是如此简单之事。。。也就是说。。。数组名就已经是指针(地址)了?!!! ...

数组名不是指针,但是在大多数情况下转化为指向数组首元素的指针

典型的不转化情况:

int ary[5] = {1,2,3,4,5}; //初始化

sizeof(ary); //sizeof的操作数

&ary; //&的操作数

而在传递参数的时候是转化的,比如你写

foo(int a[5]);

会自动转化为 foo(int* a);

数组的长度会被自动丢弃(n维数组保留n-1的长度信息,一维数组就退化成一个指针了)

如果你想传递一个完整的数组信息,需要这么做

foo(int* ary, int length);

[查看全文]