Форум программистов, компьютерный форум, киберфорум
Наши страницы

Недопонимание указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вынос строк для SQL запросов наружу http://www.cyberforum.ru/cpp-beginners/thread646148.html
Есть проект который интенсивно работает с базой данный при помощи запросов. Выходной файл имеет размер ~6 Mb. И мне пришла идея вынести все строки SQL запросов в наружный файл (.dll или что-то...
C++ Вызов конструктора со скобками и без Всем здравствуйте С++ только изучаю. В общем, есть у меня такой код: #include <iostream> using namespace std; class Test { public : Test() : data(777) http://www.cyberforum.ru/cpp-beginners/thread646145.html
C++ Как правильно вставить код на ассемблере?
Есть такой код: struct { unsigned long first_sect; unsigned nsect; void *buf; } cb; /** * getboot
C++ Ошибка при компиляции
При компиляции конструктора класса, имеющего один из аргументов другого класса получаю ошибку. Ниже листинг программы и код ошибки. // Date 9.7.1.h #include"Month.h" class Year { class...
C++ Пять самых длинных слов http://www.cyberforum.ru/cpp-beginners/thread646068.html
Дана строка слов разделенных пробелами, запятыми, точками. Сформируйте новую строчку из пяти самых длинных слов. #include <iostream> #include <string.h> using namespace std; void main(){...
C++ this и конструктор Всем привет! Столкнулся с задачей: У класса есть статический указатель, который инициализируется CableTV* CableTV :: ptr = new CableTV; Есть также два указателя в привате ... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
03.09.2012, 16:13
Bсё так и есть - первый аргумент приводится к типу указатель на строку (массив символов), второй тоже. Иначе ф-ция бы возмутилась и позвала компилятор.
Указатели ведь это не типы. Из объявлений бывает видно не всё. Особенно это видно на примере с указателями на char.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
char sumb='A';
char *ptr_sumb;
char *c_str_ptr;
ptr_sumb=&sumb;//pointer to char sumbol
c_str_ptr="pointer to c-string";//c-string
// несмотря на то, что два указателя char* объявлены одинаково, но инициализированы по разному
// и указывают на разные типы! То есть то что указатель не является типом не пустые слова 
// и его объявление без инициализации - незавершенный процесс.
std::cout<<"\n address of sumb = "<<&sumb;//трудно сказать что тут выводится
std::cout<<"\n of ptr_sumb as an address = "<<ptr_sumb;//и тут...
std::cout<<"\n the value at the adress of ptr_sumb = "<<*ptr_sumb;// A
std::cout<<"\n address of c_str_ptr="<<&c_str_ptr;//целое hex 
std::cout<<"\n*c_str_ptr="<<c_str_ptr;// с-строка "pointer to c-string" то есть c_str_ptr //воспринимается как имя массива (ссылка).
std::cout<<std::endl;
    std::system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru