sizeof()与 数组长度获取
来源:互联网 发布:如何找出excel重复数据 编辑:程序博客网 时间:2024/05/21 11:14
获取数组长度
int find(int* array,int key)
其中array的长度如何获取?
用过sizeof(array) / sizeof(int),但是结果不对,始终是1
满意回答
sizeof是在编译阶段展开的一个宏,换句话说,下面的程序是错误的,函数参数在运行阶段以压栈方式传递了一个地址:
int mylen(int buf[]){
return sizeof(buf) / sizeof(int);
}
int main(void)
{
int buf[] = {0, 0, 0, 0};
int l = mylen(buf);
printf("%d\n", l);
system("pause");
return 0;
}
但是这样写就是正确的,因为buf的分配过程是在编译阶段定义:
int main(void)
{
int buf[] = {0, 0, 0, 0};
int l =sizeof(buf) / sizeof(int);
printf("%d\n", l);
system("pause");
return 0;
}
您关心的array长度问题,只能从参数解决:
int find(int * array, int len, int key);
或者以协议方式,将首地址的值定为长度:
int find(int * xarray, int key)
{
assert(xarray);//断言
int ln = xarray(0); //首变量储存数组长度
int * array = xarray + 1; //正式地址从下一个地址开始
...
- sizeof()与 数组长度获取
- sizeof获取数组长度
- sizeof获取数组长度的函数
- 使用sizeof()计算数组长度
- sizeof() 求数组长度
- sizeof求数组长度
- 求数组长度sizeof
- sizeof 计算出数组的长度
- sizeof 计算出数组的长度
- 使用sizeof();求数组长度
- sizeof函数求数组长度
- 我的编程学习日志(10)--求字符数组与数字数组的长度(strlen,,size,sizeof)
- 字符串长度与strlen、sizeof
- 关于sizeof在调用函数中获取被调函数数组长度的思考
- 计算字符串的长度及sizeof与strlen、gets与scanf、字符数组与字符串
- jquery 获取select数组与name数组长度
- sizeof(数组名)与sizeof(指针变量)
- sizeof运算符计算数组长度
- 用SQL语句写分页
- 天气预报API
- WebService应用技术
- C语言和设计模式(责任链模式)
- SAS dictionary工具
- sizeof()与 数组长度获取
- libxml C解析xml文档
- 自动调整软键盘
- C语言和设计模式(抽象工厂模式)
- Java线程(三):线程协作-生产者/消费者问题
- C++技术支持项目-综合储物业务平台
- 敌兵布阵 dp
- poj2761----树状数组
- 见与不见