Saturday, May 4, 2019

பாயின்டர்-2


பாயின்டர் மற்றும் அர்ரே.
பின் வரும் நிரல் ஒரு அர்ரேயின் ஒவ்வொரு எலிமெண்டின் முகவரியை பிரின்ட் செய்கின்றது.
#include <stdio.h>
int main()
{            
   int x[4];
   int i;

   for(i = 0; i < 4; ++i)
   {
      printf("&x[%d] = %u\n", i, &x[i]);
   }

   printf("Address of array x: %u", x);

   return 0;
}

வெளீயீடு:

&x[0] = 1450734448
&x[1] = 1450734452
&x[2] = 1450734456
&x[3] = 1450734460
Address of array x: 1450734448

&x[0] –வும்  x –ம் ஓரே மதிப்பை காட்டுகின்றன. அதாவது x என்பது ஒரு அர்ரேயின் பெயர். அதை பிரிண்ட் செய்தால் அதன் முதலாவது எலிமெண்டின் முகவரியை பிரிண்ட் செய்கின்றது.
ஒரு அர்ரேயை எடுத்துக் கொள்வோம்.
int x[4]

·  &x[1] என்பது  x+1 and x[1] என்பது *(x+1).
·  &x[2] என்பது x+2 and x[2] என்பது *(x+2).


சான்று நிரல்.
 #include <stdio.h>
int main()
{
  int i, x[6], sum = 0;
  printf("Enter 6 numbers: ");
  for(i = 0; i < 6; ++i)
  {
      scanf("%d", x+i);

      sum += *(x+i);
  }
  printf("Sum = %d", sum);
  return 0;
}
வெளியீடு:

Enter 6 numbers:  2
 3
 4
 4
 12
 4
Sum = 29

...ஒரு அர்ரேயின் பெயரும் அதன் முதலாவது எலிமெண்டின் பெயரும் பொதுவாக பொருந்தி வரும்.
சான்று நிர;ல்.

#include <stdio.h>
int main()
{
  int x[5] = {1, 2, 3, 4, 5};
  int* ptr;

  ptr = &x[2];

  printf("*ptr = %d \n", *ptr);
  printf("*ptr+1 = %d \n", *ptr+1);
  printf("*ptr-1 = %d", *ptr-1);

  return 0;
}
வெளியீடு:
*ptr = 3
*ptr+1 = 4
*ptr-1 = 2
இந்த உதாரணத்தில்  &x[2] ஆனது ptr-க்கு மதிப்பிருத்தப் படுகின்றது. அதாவது மூன்றாவது எலிமென்டின் முகவரி. எனவே
அந்த முகவரியில் உள்ள மதிப்பு 3 ஆனது வெளியீடு செய்யப்படுகின்றது.
Ptr+1 என்பது நான்காவது எலிமெண்டின் முகவரி.
எனவே அதில் உள்ள மதிப்பு 4 வெளியீடு செய்யப்படுகின்றது.
Ptr-1 என்பது இரண்டாவது எலிமென்டின் முகவரி எனவே அதில் உள்ள மதிப்பு 2 ஆனது வெளியீடு செய்யப்படுகின்றது.


-நன்றி
முத்து கார்த்திகேயன் , மதுரை.

 TO LEARN COURSES LIKE C,C++, JAVA, DOTNET, PYTHON, PHP, WEB DESIGNING, MS-OFFICE, TALLY CONTACT:96293 29142



please feedback about this article.



ads Udanz

No comments:

Post a Comment