11. Указатели

• Дефиниране на указател
• Действия с указатели
• Указатели и масиви
• Указатели и низове
• Указатели и структури
• Примери и задачи

преди план следва
 
 

• Указатели и низове


В езика С/С++ низовете се разглеждат като масиви от символи. Името на масива от символи е константен указател към първия елемент на масива, какго и при всеки друг масив. Следващият пример илюстрира извеждане на низ, дефиниран като масив от символи, чрез използване на указател към char.
Пример:
char str[20] = "This is a string ";
  	char *p;
 	 p = str;        // p взема адреса на  str[0]
  	while(*p)
  	{ cout<< *p;
   	  p++; 
            }
Низът може да се зададе не само като масив от символи, а също и като указател към тип char. В този случай не се налага използване на помощна променлива p:
char *s = "This is a string ";
 	 while(*s)
  	{ cout<< *s;
   	  s++;
 	}
Примерите показват, че задаването на низ като указател към char има предимство пред задаването му като масив от символи. В този случай обаче не е възможно въвеждането на низа по следния начин:
char *s;
cin>> s;
тъй като не е възможно въвеждане на стойност на указател, докато задаването на низа като масив позволява въвеждането:
char a[5];
cin>> a;
Важна особеност при низовете е и това, че извеждането на името на масива не извежда адреса на първия символ, а извежда целия низ, например кодът
char a[5]="abcd";
cout<< a;
извежда низа abcd, а кодът
int y[5]={1,2,3,4,5};
cout<< y;
извежда адреса на y[0].

 
 
 
 
преди план следва