为什么作为参数发送的数组的大小与main中的相同?
#include <stdio.h>
void PrintSize(int p_someArray[10]);
int main () {
int myArray[10];
printf("%d\n", sizeof(myArray)); /* As expected, 40 */
PrintSize(myArray);/* Prints 4, not 40 */
}
void PrintSize(int p_someArray[10]){
printf("%d\n", sizeof(p_someArray));
}
Run Code Online (Sandbox Code Playgroud) 我有一个数组,其中包含指向其他数组的指针.我想打印所有值,但我无法获得特定数组的sizeof.我究竟做错了什么?
int main(void){
int i, j;
float T1[4]={1.1, 1.2, 1.3, 1.4};
float T2[6]={2.1, 2.2, 2.3, 2.4, 2.5, 2.6};
float T3[3]={3.1, 3.2, 3.3};
float T4[2]={4.1, 4.2};
float T5[4]={5.1, 5.2, 5.3, 5.4};
float *TAB[5]={T1, T2, T3, T4, T5};
for(i=0; i<5; i++){
for(j=0; j<sizeof(TAB[i])/(sizeof (int)); j++){
printf("%f ", *(TAB[i]+j));
}
}
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)