Я просто хотел знать, есть ли разница между определениями int arr;
и int arr[1];
(за исключением доступа, я знаю, что нам нужно получить доступ как arr
и arr[0]
). По моим сведениям, оба выделяют одинаковый размер памяти (sizeof(int)
). Есть ли другие сведения об этих распределениях.Есть ли разница между определениями int arr; и int arr [1];
0
A
ответ
0
int arr;
Здесь arr
является переменным типом int.sizeof (ARR) будет возвращать размер целого числа.
int arr[1];
Здесь arr
является массив типа междунар который может содержать элементы типа междунар. В этом случае он может содержать только один целочисленный элемент .sizeof (arr [0]) вернет размер первого элемента массива, который является целым числом.
Для локальной переменной и массива память выделяется в стеке.
0
я думаю int arr[1]
выделить больше памяти, чем int arr
тот факт, что int arr[1]
создать указатель на первый элемент. Таким образом, у вас есть указатель arr
, то есть зарегистрированное значение &arr[0]
и значение arr [0].
Также вы можете получить доступ к обр [0] непосредственно *arr
Смежные вопросы
- 1. любая разница между foo (int * arr) и foo (int arr [])?
- 2. int [] arr = {0}; int value = arr [arr [0] ++]; Значение = 1?
- 3. сбой кода, когда int arr = 1 && arr;, но не int arr = 0 && arr;
- 4. В чем разница между (int *) arr [2] и int * arr [2]?
- 5. В чем разница между foo (int arr []) и foo (int arr [10])?
- 6. Разница между ASturct arr [] и ASturct * arr []
- 7. В чем разница между * (arr + 1) +1 и (* (arr + 1)) + 1 в C++
- 8. Почему это не работает: `int arr [size]`, но это делает `int * arr = new int [size]`?
- 9. разница между преобразованием типов (INT **) и Int (*)
- 10. Есть ли разница между arr.equals (anotherArr) и arr == anotherArr?
- 11. Что более точное среднее значение, ARR [0]/N + ARR [1]/N ... + ARR [N-1]/N или (ARR [0] + ARR [1] ... + ARR [N-1])/N в двойном?
- 12. Есть ли разница между TINYINT (1) и INT (1)?
- 13. Почему arr и & arr то же самое?
- 14. Есть ли разница между «const int» и «int» в C++?
- 15. Разница между int * array и int array [] в параметре функции
- 16. Есть ли разница между int * и Type *?
- 17. Почему arr [1] печатает то, что кажется arr [0]?
- 18. Почему мой размер (arr)/sizeof (arr [0]) = 1?
- 19. Есть ли разница между int (* p) и int * p?
- 20. Есть ли разница между Int и Maybe Int в Haskell?
- 21. Есть ли разница между int x {}; и int x = 0 ;?
- 22. Есть ли разница между int & a и int & a?
- 23. В чем разница между int [] и Integer []
- 24. Разница между 'int' и 'int?'
- 25. Triple stars: В чем разница между char * (* arr) [] и char *** arr (в C)?
- 26. В C, почему «int MAX = 10^6 ... int arr [MAX]» не сбой, но «int MAX = 1000000 ... int arr [MAX]» делает сбой?
- 27. В чем разница между узлом struct * arr [] и (struct node) * arr []?
- 28. Мой sml-компилятор не распознает простые операции над массивами (update (arr, int, int), array (int, int) и т. Д.). Помогите!
- 29. Что делает ARR + num * 8? где ARR - динамический массив, а num - int
- 30. Что такое differnece между $ arr [0] и @arr [0] в perl?
Тип 'arr' отличается в каждом конкретном случае. – juanchopanza
Единственное, что касается этих двух, это то, что им нужен такой же объем памяти. Все остальное по-другому. Они разные, их нужно использовать по-разному. –
Я полагаю, что когда 'arr [1]' является локальной переменной, она всегда будет выделена в стеке, она не может быть выделена в регистре. На данный момент я не вижу другой разницы в распределении пространства. – Marian