#include <stdlib.h>
#include <stdio.h>
int main (void)
{
int a[] = {1,2,3,4,5};
int b[] = {0,0,0,0,0};
int *p = b;
for (int i =0; i < 5; i++)
{
b[i] = a[i]+1;
*p = a[i]+1;
p++;
}
for (int i = 0; i < 5; i++)
{
printf (" %i \t %i \t %i \n", *p++, b[i], a[i]);
}
return 0;
}
इस कोड के लिए मुझे ए और बी के आउटपुट क्यों मिलते हैं लेकिन पॉइंटर का एक ही मूल्य क्यों होता है?सी पॉइंटर्स और सर
* पी बी [0] = एक [0] +1 है, है ना? तो पी ++ का अर्थ बी के लिए अगला पता है, इसलिए यह बी [1] = एक [1] +1 है।
ie
*p b a
1 2 1
2 3 2
3 4 3
4 5 4
5 6 5
आप अपने कॉलम गलत लेबल जोड़ने के लिए है: यह '* पी बी A', नहीं' एक ख * p' होना चाहिए। – dasblinkenlight
हाँ मैंने किया, मेरा बुरा। फिक्स्ड – user2135885
परिवर्तन-प्रतिरोध के लिए, बेहतर 'int b [sizeof (a)/sizeof (a [0])] = {... 'और' 5' मानों को उसी अवधि से प्रतिस्थापित करें। इस तरह, आप सरणी 'ए' बदल सकते हैं और सब ठीक हो जाएगा। – glglgl