Допомога з таблицями C і покажчики

M

m_t_blind

Guest
Коли у нас є один-розмір таблиці, наприклад,,

сЬаг м [2],
is a char type pointer to the first element of the table.ok.

Ім'я таблиці м
символ тип вказівника на перший елемент table.ok.
Коли ми багатовимірного таблиці, наприклад,

сЬаг м2 [10] [2],
for this.

я виявив, що ім'я is't дійсний покажчик, і я використовую і т [0] [0]
для цього.
(Це на IAR компілятор для СМП)

1.My перше питання, що це право на загальний C, або просто apears про конкретні компілятор?
):

2.And моє наступне запитання (для таблиці m2):
points the m2[0][2]
?

Покажчик * (і м2 [0] [0] 10) очок м2 [0] [2]?

Якщо ні, чому?

 
Привіт m_t_blind,
перевірка мого пояснення:
[2]сЬаг м2 [10]
[2]

Давайте підкреслив частина буде "ім'я" масиву.Тоді директиву символ і додавання [2] маємо масив з 10 символів.

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

Але ім'я м2 [10]
сам масив про те, що Є 10 пунктів кожна з яких масив 2 символів.Тому у нас є масив з 10 масивів 2 символів.
is wrong.

* (І м2 [0] [0] 10) очок м2 [0] [2]
невірно.

він вказує на м2 [5] [0].
actually it takes the address of the first element
.

це тому, що, коли ви говорите і м2 [0] [0]
насправді він має адресу першого елемента.to this, it will add 10*sizeof(char)
to that address.

І коли ви
додаєте 10
до цього, він буде додати 10 * sizeof (символу)
на цю адресу.Так, нарешті, до pionts м2 [5] [0].(Вибачте за цю помилку .. Спасибі Сильвіо)ура ...
Останній раз редагувався sinu_gowde по 3 лютого 2006 9:16; редагувався 2 разів в загальній складності

 
m_t_blind пише:1.My перше питання, що це право на загальний C, або просто apears про конкретні компілятор?

 
Також див FAQ comp.lang.c коментарі щодо масиву в порівнянні з покажчиком:
http://c-faq.com/aryptr/index.html

 
Я думаю, ви повинні розуміти основні масиву і покажчики ...коли і говорять м [10] ..не має значення, якщо його оголосили символ або Int або двічі ..Вам просто allocationg шматок пам'яті і якої і є ім'я ..і т [0] буде перший елемент масиву ..і коли в потрібно оголосити і покажчик вони явно не такі, як оголосити Int * точки, тощо.

наскільки я knw C. ..тільки вивчити основні З масиву і покажчики ..U буде добре ..покажчик є дуже потужним у може призвести до збою системи з нею!

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

 
Будь ласка, зареєструйтесь ..що ур Sayin є обряд ..немає концепції 2D масив C..що це таке, що ви можете мати кілька одномірний масив і більше того вони, як, в якій елементи розташовані в пам'яті у вигляді одного слота ..а ви, хлопці, знаєте ..(Відповідно до турбо-C) ціле займає 2 байти і характер займає 1 байт пам'яті .. кожен слот виділяється 2 байти пам'яті / 1 байт для символів і * (і [0] [0] 10), дорівнює * ( перший виділення пам'яті 10 місць, що на 1 байт кожен), щоб, нарешті, де-посилається на неї і виводить її ..

з повагою,
Arun

 
ОК подякувати всім вам, (і вибачте за неправильне м2 [0] [2] whitch не існує, я маю на увазі м2 [0] [1])

 
Я хочу створити масив символів і хочете дзвонити повідомлення наступним чином:
повідомлення [0 ]---> за перше повідомлення
messsage [1] ---> друге повідомлення і так далі ...
Як я можу це зробити?

 
Ви хочете Creat масив покажчиків, які вказують на масив символів ...Ти бачиш на follwoing діаграми ...
Вибачте, але Ви повинні увійти, щоб переглянути це вкладення

 
Чи можете ви написати приклад коду, будь ласка?

 

Welcome to EDABoard.com

Sponsor

Back
Top