Помощ с таблици В и указатели

M

m_t_blind

Guest
Когато имаме 1-измерение маса, например,

Чар M [2],
is a char type pointer to the first element of the table.ok.

името на таблицата М
е Чар показалеца тип на първия елемент на table.ok.
Когато имаме много измерения маса, например,

Чар m2 [10] [2],
for this.

Открих, че името is't валиден показалеца, и аз употреба & m [0] [0]
за това.
(Това за IAR компилатор за MSP)

1.My първия въпрос е, че това е точно за общ C, или просто apears на специфичните компилатор?
):

2.And следващия ми въпрос е (за маса m2):
points the m2[0][2]
?

Показалецът * (& m2 [0] [0] 10)
точки m2 [0] [2]?

Ако не защо?

 
Здравейте m_t_blind,
Поръчка ми обяснение:
[2]Чар m2 [10] [2]Нека вземем подчерта, част да бъде "име" на масив.Тогава prepending на Чар и добавяте на [2] имаме масив от 10 символа.

is itself an array indicating that there are 10 elements each being an array of 2 characters.

Но, името m2 [10]
се е масив, което показва, че има 10 елемента като всеки е масив от 2 знака.Следователно имаме масив от 10 масиви от 2 знака.
is wrong.

* (& m2 [0] [0] 10) точки m2 [0] [2]
е наред.

той насочва към m2 [5] [0].
actually it takes the address of the first element
.

това е така, защото, когато ти казват & m2 [0] [0]
Всъщност тя е на адреса на първия елемент.to this, it will add 10*sizeof(char)
to that address.

& 10, когато
добавите към това, то ще се добавят 10 * sizeof (Чар)
на този адрес.Така че най-накрая го pionts да m2 [5] [0].(съжалявам за тази грешка .. благодаря Силвио)Наздраве ...
Последно редактиран от sinu_gowde на 03 Feb 2006 9:16; Редактирано 2 пъти общо

 
m_t_blind написа:1.My първия въпрос е, че това е точно за общ C, или просто apears на специфичните компилатор?

 
Също така вижте comp.lang.c коментари Често задавани въпроси по отношение на масив в сравнение с показалеца:
http://c-faq.com/aryptr/index.html

 
Мисля, че трябва да се разбере на основния масив и насоки ...U, когато казват M [10] ..няма значение дали си декларирани или Int сивен или двойно ..просто сте allocationg парче на паметта, и които са ф име ..и м [0] ще бъде първият елемент на масива ..ф и когато трябва да се декларират и показалеца те са изрично декларира като Int * точка и др.

доколкото knw I В. ..просто проучване на основния масив на C и указатели ..U ще се оправи ..показалецът е много мощен U може срив в системата с него!

<img src="http://www.edaboard.com/images/smiles/icon_idea.gif" alt="Идея" border="0" />
ако ф нужда онлайн и в книгата arleady да го качите на Rapidshare ..тук е връзкатаз п **: / / rapidshare.de/files/12360722/C-K_R-Material.pdf.html

 
Yeap ..Ур казвам, че е обред ..не съществува понятието за 2D масив в C..Какво е то е, че може да има много по-мерен масив и над начина, по който те са подредени елементи в паметта е под формата на един слот .., както вие знаете ..(под Turbo C) цяло число се до 2 байта и характер отнема от 1 байт .. всеки слот памет е разпределена с 2 байта памет / 1 байт за символ и * (& A [0] [0] 10) е равен * ( първото разпределение на паметта 10 места, което е 1 байт всяка), така че най-накрая де-то справки и го отпечатва ..

по отношение,
Arun

 
OK, благодаря на всички вас, (и съжалявам за грешката на m2 [0] [2] whitch не съществува, искам да кажа m2 [0] [1])

 
Искам да се създаде Чар масив и искате да се обадите съобщения като това:
съобщение [0 ]---> за първото съобщение
messsage [1] ---> Второто послание и така нататък ...
Как мога да направя това?

 
Искаш ли да Записът е създаден масив от указатели, които указват на масиви от Чар ...можете да гледате от follwoing диаграми ...
Съжалявам, но трябва вход, за да видите този прикачен файл

 
Можете ли да напишете например кодекс харесвам?

 

Welcome to EDABoard.com

Sponsor

Back
Top