Ці ёсць розніца паміж масівам паказальнікаў і паказальнікам на масіў на C?


адказ 1:

Паколькі толькі адзін з 6 адказаў паказвае, як выглядае паказальнік на масіў на З, я дадаю яшчэ адзін:

Масіў паказальнікаў - гэта масіў, які змяшчае паказальнікі, якія паказваюць на нешта іншае:

#include int main (пустата) {int a = 1, b = 2, c = 3, d = 4; int * ap [4] = {& a, & b, & c, & d}; // масіў паказальнікаў на int // трымаем чатыры паказальнікі на (int i = 0; i! = 4; ++ i) printf ("% d", * ap [i]); }

Дэманстрацыя: [сценка] 三 三 (へ へ ਊ ਊ) へ へ ハ ッ ハ

Паказальнік на масіў - гэта паказальнік, які паказвае на масіў, які змяшчае нешта іншае:

#include int main (void) {int a [4] = {1,2,3,4}; int (* pa) [4] =? // паказальнік на масіў з чатырох улікаў для (int i = 0; i! = 4; ++ i) printf ("% d", (* pa) [i]); }

Дэманстрацыя: [сценка] 三 三 (へ へ ਊ ਊ) へ へ ハ ッ ハ

Вы таксама можаце мець паказальнік на масіў паказальнікаў:

int a = 1, b = 2, c = 3, d = 4; int * ap [4] = {& a, & b, & c, & d}; // масіў паказальнікаў int * (* pap) [4] = & ap; // паказальнік на масіў паказальнікаў

і масіў паказальнікаў на масівы:

int a [3] = {1,2,3}, b [3] = {4,5,6}, с [3] = {7,8,9}; int (* apa [3]) [3] = {& a, & b, & c}; // Масіў паказальнікаў на масівы

і паказальнік на паказальнік на масіў

int a [4] = {1,2,3,4}; int (* pa) [4] =? // паказальнік на масіў чатырох Ints int (** ppa) [4] = & pa; // паказальнік на паказальнік на масіў з чатырох уліковых

Масіў масіва паказальнікаў

int a = 1, b = 2, c = 3, d = 4; int * aap [2] [2] = {{& a, & b}, {& c, & d}}; // масіў масіва паказальніка

і г.д. і інш. "масіў" і "паказальнік на" могуць складацца бясконца.


адказ 2:

Розніца ёсць.

Пачнем з масіва.

Калі аб'яўляецца масіў, мы даведаемся толькі базавы адрас масіва.

int a [10];

Тут 'а' мае стартавы адрас масіва.

Так, гэта паказальнік, дакладней, пастаянны паказальнік, які паказвае на [0].

Зараз паглядзім паказальнік на масіў.

У асноўным вы робіце паказальнік на масіў.

int a [10]; Int * p; р = а; // альбо p = & a [0];

Тут p паказвае на .it файл. Гэта азначае, што вы можаце атрымаць доступ да элементаў a з p.

інт i; int a [5] = {1, 2, 3, 4, 5}; int * p = a; // як int * p = & a [0] for (i = 0; i <5; i ++) {printf ("% d", * p); p ++;}

Гэта ў асноўным друкуе элементы масіва.

Цяпер масіў паказальнікаў - крыху больш складаны.

Гэта масіў элементаў, якія з'яўляюцца паказальнікамі.

Азначае, што кожны элемент у масіве паказвае на іншае месца.

Вось прыклад.

char * name [3] = {"Адам", "Крыс", "Дэніэль"

};


адказ 3:

У C паказальнік нагадвае спасылку на памяць на больш высокай мове, як Java. Такім чынам, вы можаце думаць пра масіў паказальнікаў, якія нагадваюць масіў спасылак на памяць на больш высокай мове.

Масіў на C - гэта проста непасрэдны блок памяці. Такім чынам, паказальнік на масіў будзе толькі паказальнікам на базавы адрас масіва альбо спасылкай на памяць на індэкс 0 масіва на больш высокай мове (пры ўмове, што вы пачынаеце з базавага адрасу).


адказ 4:

У C паказальнік нагадвае спасылку на памяць на больш высокай мове, як Java. Такім чынам, вы можаце думаць пра масіў паказальнікаў, якія нагадваюць масіў спасылак на памяць на больш высокай мове.

Масіў на C - гэта проста непасрэдны блок памяці. Такім чынам, паказальнік на масіў будзе толькі паказальнікам на базавы адрас масіва альбо спасылкай на памяць на індэкс 0 масіва на больш высокай мове (пры ўмове, што вы пачынаеце з базавага адрасу).


адказ 5:

У C паказальнік нагадвае спасылку на памяць на больш высокай мове, як Java. Такім чынам, вы можаце думаць пра масіў паказальнікаў, якія нагадваюць масіў спасылак на памяць на больш высокай мове.

Масіў на C - гэта проста непасрэдны блок памяці. Такім чынам, паказальнік на масіў будзе толькі паказальнікам на базавы адрас масіва альбо спасылкай на памяць на індэкс 0 масіва на больш высокай мове (пры ўмове, што вы пачынаеце з базавага адрасу).


адказ 6:

У C паказальнік нагадвае спасылку на памяць на больш высокай мове, як Java. Такім чынам, вы можаце думаць пра масіў паказальнікаў, якія нагадваюць масіў спасылак на памяць на больш высокай мове.

Масіў на C - гэта проста непасрэдны блок памяці. Такім чынам, паказальнік на масіў будзе толькі паказальнікам на базавы адрас масіва альбо спасылкай на памяць на індэкс 0 масіва на больш высокай мове (пры ўмове, што вы пачынаеце з базавага адрасу).