C语言问题!
想用C语言写一个二分法练习,在main函数中定义了数组,把算法写到了一个函数里面想要调用。
这里的printf打出来的是正确的
数组的大小变成了8
这是首地址
不能直接获取长度
可以这样操作
#include <iostream>
using namespace std;
void printArray(int a[], int length) {
for (int i = 0; i < length; i++) {
cout << a[i] << " ";
}
cout << endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr)/sizeof(arr[0]); // 获取数组长度
printArray(arr, len);
return 0;
}
因为参数类型是指针,你获取的是指针大小不是数组长度
你需要加一个参数把长度传进来
printf是一个C语言编译器提供的库函数,可以在屏幕上进行打印字符串,但是使用这个库函数需要引用一个头文件,因为库函数是别人写的自己拿来用,所以在使用之前要进行引用。printf库函数需要引用的头文件是stdio.h。