Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
script kiddie
Сообщений: n/a
#1

адреса - C++

03.06.2009, 23:02. Просмотров 658. Ответов 5
Метки нет (Все метки)

привет всем
есть программа 1 /* контроль адресов */
2 #include <stdio.h>
3 main( )
4 { int pooh = 2, bah = 5;
5 printf(" В main( ), pooh = %d и &pooh = %u \n" , pooh, &pooh);
6 printf("B main( ), bah = %d и &bah = %u\n", bah, &bah);
7 }
программа проста как дверь ,но компилятор выдает такое
finsh.c: В функции ‘main’:
finsh.c:5: предупреждение: формат ‘%u’ предполагает тип ‘unsigned int’, но аргумент 3 имеет тип ‘int *’
finsh.c:6: предупреждение: формат ‘%u’ предполагает тип ‘unsigned int’, но аргумент 3 имеет тип ‘int *’

пожлуйста обьясните что это за тип или хотя бы ткните в какую сторону искать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 23:02     адреса
Посмотрите здесь:

Ссылки и адреса C++
Получение IP адреса (Си) C++
указатели и адреса. C++
C++ смена IP-адреса
C++ Адреса и указатели
IP адреса. C++
адреса C++
Адреса переменных C++
C++ смещения адреса
C++ Взятие адреса в аргументе
C++ Получение адреса
Почему при присваивании адреса массива не ставится знак '&' получения адреса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Delphin_KKC
UNIX-way
709 / 494 / 17
Регистрация: 15.01.2009
Сообщений: 1,721
03.06.2009, 23:10     адреса #2
unsigned int - беззнаковый тип. Значения от 0 до 2^32-1
int - знаковый тип. Значения от -2^31 до 2^31-1
Компилятор ругается изза того, что при взаимном их преобразовании могут быть результаты не совсем те, которые ожидаешь (например вместо -1 будет примерно 2^31)
Вместо %u используй %i
копать в сторону изучения всех аргументов ф-ций printf/scanf
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.06.2009, 08:54     адреса #3
попробуй разделять строки
C
1
2
3
4
5
6
7
8
9
    printf(
        " В main( ), "
        "pooh = %d"
        " и "
        "&pooh = %u"
        " \n",
        pooh,
        (unsigned int) &pooh
    );
Melodie
3070 / 309 / 5
Регистрация: 02.06.2009
Сообщений: 3,297
04.06.2009, 15:46     адреса #4
Цитата Сообщение от accept Посмотреть сообщение
попробуй разделять строки
C
1
2
3
4
5
6
7
8
9
    printf(
        " В main( ), "
        "pooh = %d"
        " и "
        "&pooh = %u"
        " \n",
        pooh,
        (unsigned int) &pooh
    );
А что это даёт, программа точно так же выдаст всё на одной строке, а переход на другую строку будет только после "\n".
Gravity
558 / 552 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
04.06.2009, 17:05     адреса #5
Достаточно явного преобразования к unsigned int.
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.06.2009, 09:22     адреса #6
Цитата Сообщение от nynicue
А что это даёт, программа точно так же выдаст всё на одной строке
это даёт возможность записывать очень длинные тексты в компактной форме (у него как раз строка начала расти)

и ещё неявная возможность
C
1
2
3
4
5
6
7
8
9
    printf(
        " В main( ), "
        "pooh = %d"
        " и "
        "&pooh = %u"
        " \n",
        pooh,
        (unsigned int) &pooh
    );
можно привести

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    const char *h = " В main( ), ",
               *p = "pooh = %d";
    const char *endl = "\r\n";
    ...
 
    printf(
        "%s"
        "%s"
        " и "
        "&pooh = %u"
        " "
        "%s",
        h,
        p,
        pooh,
        (unsigned int) &pooh,
        endl
    );
когда строка в ряд, её надо читать, чтобы поделить на составные части, а когда она уже поделена, это сразу видно, где там что, где заголовок, где конец (иногда нужно \n заменить на \r\n, можно не лазить по всем fprintf'ам а иметь одну концовку для всех, стоящую отдельно)
Yandex
Объявления
05.06.2009, 09:22     адреса
Ответ Создать тему
Опции темы

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