Чтобы лучше описать мою дилемму, приведу примеры. Рассмотрим такой код.
#include <iostream>
using std::cout;
using std::endl;
void tostr(const int* strr) {
cout << strr << endl;
cout << *strr << endl;
cout << &strr << endl;
}
int main(int argc, char const *argv[]) {
int a = 55;
int *p = &a;
tostr(p);
return 0;
}
Здесь всё поняно: const int* - это указатель. Мы передаем функции указатель на а равное 55. strr выдает адрес памяти переменной а, *strr разыменовывает адрес переменной а и выдаёт 55, &strr выдает адрес памяти переменной р со значением адреса памяти переменной а.
Но. Рассмотрим следующий код:
#include <iostream>
using std::cout;
using std::endl;
void tostr(const char* strr) {
cout << strr << endl;
cout << *strr << endl;
cout << &strr << endl;
}
int main(int argc, char const *argv[]) {
tostr("abs");
return 0;
}
const char* так же указатель. Но почему мы можем передавать функции строку, а не указатель на неё, причем даже не символ, а целую строку? Ведь если бы по такому принципу в предыдущем примере передали бы не указатель, а число, то нам бы вывалилась ошибка, мол невозможно преобразовать int в int*.
Почему здесь это работает и, самое главное, как с этим работать, ибо в этом случае strr выдает не адрес памяти, как должно было бы быть, а саму сроку?
В этом примере единственное, что работает понятно - *strr, ибо strr - указатель на char и при разыменовании ожидаемо получаем char, в данном случае - первую букву а. Хорошо, &strr то же понятно - выводит адрес переменной strr.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите пожалуйста, есть ссылка создана yf jQuery, нажав на которую открывается в popup окне форма обратной связи mailphp, тоже создана с помощью...
После ввода данных файл (case 1) хочу вывести на экран цифры содержащиеся в нём(case 2), первый раз получается это сделать, а вот второй уже нет, в чём...
у меня есть файл txt в первичной внешней памяти(не съемной)андройдая вывожу текст в webView как мне его положить в базу данных sqlite? пишут что то про...