«завоевать репутацию. Суть ответа в основном правильная, но недостаточно полезная для оценки.

ал, что когда мы передаем имя массива в sizeof, имя массива не затухает до указателя на базовый адрес. Код ниже подтверждает этот факт, дав ответ 10.

#include <stdio.h> 

int main(){  
    int arr[10];  
    printf("Size of array is %d" , sizeof(arr)/sizeof(int));  
    return 0;  
}

Однако, когда я запускаю приведенный ниже код, ответ приходит 1. Независимо от того, написано ли измерение в прототипе или нет, ответ будет 1. Почему это так?

#include <stdio.h>

void dimension(int arr[]){  
    printf("Sizof array is %d" , sizeof(arr)/sizeof(int));  
}


int main(){  
    int arr[10];  
    dimension(arr);  
    return 0;  
}  

Ответы на вопрос(5)

Ваш ответ на вопрос