我是C的新手,我想在C中实现99个Haskell问题。
到目前为止,我意识到sizeof
- 函数中的last
打印4
,因为指针的长度为4.
但是如何在函数中获取列表的大小?
#include <stdio.h>
int last(int *list){
int size = sizeof(*list);
printf("%d\n", size);
return 0;
}
int main(){
int *a = {10, 20, 30, 40, 50, 60, 70, 80, 90};
last(&a);
return 0;
}
答案 0 :(得分:0)
#include <stdio.h>
#define last(a) a[sizeof(a)/sizeof(*a)-1]
int main(){
int a[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
char ca[] = { 'x', 'y', 'z' };
printf("%d\n", last(a));
printf("%c\n", last(ca));
return 0;
}