A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FPointer%2FPointer_Primitive</id>
		<title>C++/Pointer/Pointer Primitive - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FPointer%2FPointer_Primitive"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Pointer/Pointer_Primitive&amp;action=history"/>
		<updated>2026-04-18T18:05:14Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Pointer/Pointer_Primitive&amp;diff=1771&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Pointer/Pointer_Primitive&amp;diff=1771&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Pointer/Pointer_Primitive&amp;diff=1772&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Pointer/Pointer_Primitive&amp;diff=1772&amp;oldid=prev"/>
				<updated>2010-05-25T10:27:52Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Assign the public object member address to a pointer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class MyClass {&lt;br /&gt;
public:&lt;br /&gt;
  int i;&lt;br /&gt;
  MyClass(int j) { &lt;br /&gt;
     i = j; &lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass myObject(1);&lt;br /&gt;
  int *p;&lt;br /&gt;
  p = &amp;amp;myObject.i;                     &lt;br /&gt;
  cout &amp;lt;&amp;lt; *p;                          &lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Declares a pointer and then outputs its value without first assigning==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int* intPointer;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of intPointer is &amp;quot; &amp;lt;&amp;lt; intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Decrementing a Pointer for int value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
const int Length = 3;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int testScore[Length] = {4, 7, 1};&lt;br /&gt;
   int* intPointer = &amp;amp;testScore[Length - 1];&lt;br /&gt;
   int i = Length - 1;&lt;br /&gt;
   while (intPointer &amp;gt;= &amp;amp;testScore[0])&lt;br /&gt;
   {&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;The address of index &amp;quot; &amp;lt;&amp;lt; i&lt;br /&gt;
         &amp;lt;&amp;lt; &amp;quot; of the array is &amp;quot;&amp;lt;&amp;lt; intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;The value at index &amp;quot; &amp;lt;&amp;lt; i&lt;br /&gt;
         &amp;lt;&amp;lt; &amp;quot; of the array is &amp;quot;&amp;lt;&amp;lt; *intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
      intPointer--;&lt;br /&gt;
      i--;&lt;br /&gt;
   }&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How to use the address operator to assign the address of a variable to a pointer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int num = 5;&lt;br /&gt;
   int* intPointer = &amp;amp;num;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The address of x using &amp;amp;num is &amp;quot; &amp;lt;&amp;lt; &amp;amp;num &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The address of x using intPointer is &amp;quot; &amp;lt;&amp;lt; intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Indirection Operator and Dereferencing==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int num = 5;&lt;br /&gt;
   int* intPointer = &amp;amp;num;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num is &amp;quot; &amp;lt;&amp;lt; num &amp;lt;&amp;lt; endl;&lt;br /&gt;
   num = 10;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num after num = 10 is &amp;quot; &amp;lt;&amp;lt; num &amp;lt;&amp;lt; endl;&lt;br /&gt;
   *intPointer = 15;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num after *intPointer = 15 is &amp;quot; &amp;lt;&amp;lt; num &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Null Pointers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int* intPointer;&lt;br /&gt;
   intPointer = NULL;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of intPointer is &amp;quot; &amp;lt;&amp;lt; intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pointer as a Variable==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int num1 = 5, num2 = 14;&lt;br /&gt;
   int* intPointer = &amp;amp;num1;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num1 is &amp;quot; &amp;lt;&amp;lt; num1 &amp;lt;&amp;lt; endl;&lt;br /&gt;
   *intPointer *= 2;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num1 after *intPointer *= 2 is &amp;quot; &amp;lt;&amp;lt; *intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
   intPointer = &amp;amp;num2;&lt;br /&gt;
   &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num2 is &amp;quot; &amp;lt;&amp;lt; num2 &amp;lt;&amp;lt; endl;&lt;br /&gt;
   &lt;br /&gt;
   *intPointer /= 2;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The value of num after *intPointer /= 2 is &amp;quot; &amp;lt;&amp;lt; *intPointer &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Pointers to Class Members==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class MyClass {&lt;br /&gt;
public:&lt;br /&gt;
  MyClass(int i) { &lt;br /&gt;
     val=i; &lt;br /&gt;
  }&lt;br /&gt;
  int val;&lt;br /&gt;
  int doubleValue() { &lt;br /&gt;
     return val+val; &lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  int MyClass::*data;                                 &lt;br /&gt;
  int (MyClass::*func)();                             &lt;br /&gt;
  MyClass myObject1(1), myObject2(2);                 &lt;br /&gt;
  data = &amp;amp;MyClass::val;                               &lt;br /&gt;
  func = &amp;amp;MyClass::doubleValue;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Here are values: &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; myObject1.*data &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; myObject2.*data &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Here they are doubled: &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; (myObject1.*func)() &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; (myObject2.*func)() &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Prints the values and addresses of variables.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int var, *ptr;    &lt;br /&gt;
int main()        &lt;br /&gt;
{                 &lt;br /&gt;
   var = 100;&lt;br /&gt;
   ptr = &amp;amp;var;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot; Value of var:      &amp;quot; &amp;lt;&amp;lt;  var &amp;lt;&amp;lt; &amp;quot;   Address of var: &amp;quot; &amp;lt;&amp;lt;  &amp;amp;var&lt;br /&gt;
        &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot; Value of ptr: &amp;quot;      &amp;lt;&amp;lt;  ptr &amp;lt;&amp;lt; &amp;quot;   Address of ptr: &amp;quot; &amp;lt;&amp;lt;  &amp;amp;ptr&lt;br /&gt;
        &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Returning a pointer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
//returns a pointer to a string element&lt;br /&gt;
string* ptrToElement(vector&amp;lt;string&amp;gt;* const pVec, int i);&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    vector&amp;lt;string&amp;gt; v;&lt;br /&gt;
    v.push_back(&amp;quot;A&amp;quot;);&lt;br /&gt;
    v.push_back(&amp;quot;B&amp;quot;);&lt;br /&gt;
    v.push_back(&amp;quot;C&amp;quot;);&lt;br /&gt;
     cout &amp;lt;&amp;lt; *(ptrToElement(&amp;amp;v, 0)) &amp;lt;&amp;lt; endl;&lt;br /&gt;
     string* pStr = ptrToElement(&amp;amp;v, 1);&lt;br /&gt;
     cout &amp;lt;&amp;lt; *pStr &amp;lt;&amp;lt; endl;&lt;br /&gt;
    &lt;br /&gt;
     string str = *(ptrToElement(&amp;amp;v, 2));  &lt;br /&gt;
     cout &amp;lt;&amp;lt; str &amp;lt;&amp;lt; endl;&lt;br /&gt;
    &lt;br /&gt;
     *pStr = &amp;quot;Healing Potion&amp;quot;;&lt;br /&gt;
     cout &amp;lt;&amp;lt; v[1] &amp;lt;&amp;lt; endl;&lt;br /&gt;
    &lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
string* ptrToElement(vector&amp;lt;string&amp;gt;* const pVec, int i)&lt;br /&gt;
{&lt;br /&gt;
    //returns address of the string in position i of vector that pVec points to&lt;br /&gt;
    return &amp;amp;((*pVec)[i]);  &lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The actual data type of the value of all pointers is the same==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int* intPointer;&lt;br /&gt;
   float* floatPointer;&lt;br /&gt;
   char *charPointer;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The size of intPointer is &amp;quot; &amp;lt;&amp;lt; sizeof(intPointer) &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The size of floatPointer is &amp;quot; &amp;lt;&amp;lt; sizeof(floatPointer) &amp;lt;&amp;lt; endl;&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The size of charPointer is &amp;quot; &amp;lt;&amp;lt; sizeof(charPointer) &amp;lt;&amp;lt; endl;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using a reference parameter for class type==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class StringClass {&lt;br /&gt;
  char *p;&lt;br /&gt;
public:&lt;br /&gt;
  StringClass(char *s);&lt;br /&gt;
  ~StringClass() { &lt;br /&gt;
     delete [] p; &lt;br /&gt;
  }&lt;br /&gt;
  char *get() { &lt;br /&gt;
     return p; &lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
StringClass::StringClass(char *s)&lt;br /&gt;
{&lt;br /&gt;
  int l;&lt;br /&gt;
  l = strlen(s)+1;&lt;br /&gt;
  p = new char [l];&lt;br /&gt;
  if(!p) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Allocation error\n&amp;quot;;&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  strcpy(p, s);&lt;br /&gt;
}&lt;br /&gt;
// Using a reference parameter.&lt;br /&gt;
void show(StringClass &amp;amp;x)&lt;br /&gt;
{&lt;br /&gt;
  char *s;&lt;br /&gt;
   &lt;br /&gt;
  s = x.get();&lt;br /&gt;
  cout &amp;lt;&amp;lt; s &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  StringClass stringObject1(&amp;quot;Hello&amp;quot;), stringObject2(&amp;quot;There&amp;quot;);&lt;br /&gt;
  show(stringObject1);&lt;br /&gt;
  show(stringObject2);&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>