关于数组与指针的疑惑
c++吧
全部回复
仅看楼主
level 11
whatofor 楼主
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a[10];
int *b=(int *)(&a+1);
printf("the length is %d\n",b-a);
system("pause");
return 0;
}
运行结果:10;
类似的能不能推广到所有的数组(比如new的),或者写一个函数来返回数组长度。
PS:突然发现我对数组和指针,引用越来越糊涂了。
2011年03月06日 14点03分 1
level 12
V5!
new出的伪数组不含数组下标信息,不能这样做
2011年03月06日 14点03分 2
level 11
whatofor 楼主
本来以为这是个好方法,可惜啊。。。始终是个悲剧。不过,有没有办法可以用 函数返回例如:int a[10]这样的长度?我刚刚准备写int len(int &a[]);的,结果报错。。。至此开始迷惑。
2011年03月06日 14点03分 4
level 12
sizeof(int[10])/sizeof(int)
2011年03月06日 14点03分 5
level 7
一般不是
int NameOfArray[10];
sizeof(NameOfArray)/sizeof(int)吗??
2011年03月06日 14点03分 7
level 11
whatofor 楼主
回复:5楼
希望传入的参数:数组指针。回复:6楼 i从哪里来?
2011年03月06日 14点03分 8
level 11
whatofor 楼主
回复:10楼
看了下,貌似那些我都算明白。
换个问题吧,编译器怎么分辨数组和指针。
比如int a[10];zieof(a)/sizeof(int);&a是什么意思?
2011年03月07日 03点03分 11
level 12
编译期识别,编译器怎样分辨普通变量类型,就怎样分辨指针和数组
2011年03月07日 04点03分 12
level 6
-11
假设将数组传递给一个函数:
void function(int array[]);

void function(int *array);
是没有区别的。
2011年03月07日 12点03分 14
1