Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 111
1

Определить, верны ли выражения

25.01.2013, 12:41. Просмотров 546. Ответов 5
Метки нет (Все метки)

читал в интернете, не очень помогло, поэтому возникли проблемы

объясните, пожалуйста, следующие выражения, верны ли они? если нет, исправте ошибки
  1. char *z;
    int *k;
    z=k;
  2. char *z;
    void *k;
    k=z;
  3. char *z;
    void *k;
    z=(char *)k;
  4. void *p;
    p=&p;
  5. void *z,*k;
    z=&k;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2013, 12:41
Ответы с готовыми решениями:

Какие из вызовов верны и не верны
Var k,m,n:integer; a,b,c:real; procedure p(i:integer;var j:integer; x:real; var y : real); begin...

Определить, какие утверждения верны
Помогите пожалуйста

Для выражения определить наименьшее k, при котором значение выражения становится больше заданного числа П
Для выражения exp(k)/k определить наименьшее k, при котором значение выражения становится больше...

Верны ли равенства?
Помогите пожалуйста разобраться с этими примерами. Задание: Проверить, являются ли верными...

5
5 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
25.01.2013, 14:34 2
Цитата Сообщение от ДЖАГЕРНАУТ Посмотреть сообщение
char *z;
int *k;
z=k;
z указывает на char
k указывает на int
sizeof char = 1 байт, а int = 4 байт
с точки зрения логики не верно.

второй пример тоже самое,

третий пример допустим

4 пример, в переменную p сохраняется адрес переменной p, это какой-то бред.

5 пример, примерно тоже самое,

правильно будет наверно так

void *z[1];
void *k;
z[0]=&k;
не знаю, пропустит ли компилятор что-то подобное, но это примерно то, что вы написали.
0
lowercase
25.01.2013, 17:50
  #3

Не по теме:

указатели очень страшная и мощная сила. их не поймешь просто так. их надо использовать. я несколько месяцев разбирался прежде чем понять каково оно!

0
5 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
25.01.2013, 18:10 4
если знаешь ассемблер, то очень просто разобраться, ну хоть не знаешь, но понимаешь более или менее, что это такое.

просто подучи синтаксис at&t assembler

далее переменные объявляй как внешние

как-то так:

C
1
2
3
4
5
6
int *var;
 
main()
{
extern int *var;
}
дальше вместо компиляции используй gcc -S source-code-file.c

и смотри на содержание файла source-code-file.s

это сгенерированный ассемблерный код.

с внешними переменными проще, так как они не на стеке объявлены, а в сегменте данных, так тебе просто нагляднее с адресами будет разбираться.

http://ru.wikibooks.org/wiki/%... BE%D0%B2_C

вот по этой ссылке можно понять синтаксис at&t ассемблера.

у меня при таком подходе ушел ровно 1 день, чторбы я разобрался с указателями и адресной арифметикой.

попробуй вот такой код транслируй в ассемблер и посмотри, как компилятор работает с адресами и для чего ты указываешь типы
в объявлениях типа char *c_p;

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char *c_p;
int *i_p;
double *d_p;
 
main()
{
    extern char *c_p;
    extern int *i_p;
    extern double *d_p;
 
    ++c_p;
    ++i_p;
    ++d_p;
}
ну и конечно указатели надо использовать, тогда и разберешься.
0
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 111
25.01.2013, 18:38  [ТС] 5
Цитата Сообщение от gary_gaaler Посмотреть сообщение
4 пример, в переменную p сохраняется адрес переменной p, это какой-то бред.
почему бред? а разве указатель не может указывать на самого себя? он же просто будет хранить свой собственный адрес
0
5 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 6
25.01.2013, 18:44 6
Цитата Сообщение от ДЖАГЕРНАУТ Посмотреть сообщение
почему бред? а разве указатель не может указывать на самого себя? он же просто будет хранить свой собственный адрес
может, только для чего такое можно использовать??
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2013, 18:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Верны ли такие рассуждения?
Добрый день, верны ли такие рассуждения? 1) вероятность опоздает в оба дня 2) вероятность первый...

Проверить, верны ли следующие следствия
Проверить, верны ли следующие следствия: F\Rightarrow (G \Rightarrow H),(H \wedge K)\Rightarrow...

Какие из утверждений верны и почему?
Объясните пожалуйста

Верны ли мои записи.матрицы
Подскажите, верны ли мои записи.. 1)Дана динамическая матрица размером , где M -четное -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.