scanf पतों जो और इतने तर्क पर दूसरा, तृतीय, fouth के रूप में पारित कर रहे हैं में डेटा की विशेष प्रकार पढ़ता है ...
int var;
यहाँ
वर मूल्य और & वर पता
scanf("%d",&var);
है
उपर्युक्त कथन का कहना है ==> & var पता
में डेटा डी (पूर्णांक) प्रकार का डेटा पढ़ें
char s[20];
यहां पते का मूल्य नहीं है। क्योंकि यहां एक चार्टर सरणी है (हमें स्ट्रिंग के रूप में कहा जाता है)
सरणी नाम स्वयं ही इसका पता इंगित करता है। एस == & एस [0], ये दोनों समान हैं।
scanf("%s",s);
उपरोक्त कथन का कहना है ==> पढ़% s पता स्थान रों से शुरू में (वर्णों के सरणी) डेटा के प्रकार के।
int a[20];
कृपया देखें इस कोड
#include<stdio.h>
#define MAX 5
main()
{
int a[MAX];
int i;
printf("Enter Values of array\n");
for(i=0;i<MAX;i++)
{
printf("Enter a[%d] = ",i);
scanf("%d",&a[i]); // reading each time single integer value starting index with 0 and ending index MAX-1.
}
}
सी में हम साथ समय में पात्रों में से स्कैनिंग समूह की तरह के रूप में एक समय में पूर्णांकों का समूह स्कैन करने के लिए किसी एक फॉर्मेट स्पेसिफायर नहीं था % s की मदद
और यहां एक = & एक [0];
आप एकल पूर्णांक मान को उस पते पर सीधे स्कैन कर सकते हैं जो एक द्वारा इंगित किया गया है।
scanf("%d",a);
printf("a[0]=%d\n",a[0]);
यदि आप 10 दर्ज करते हैं तो यह एक [0] = 10 प्रिंट करता है।
प्वाइंटर के उपयोग:
यदि आप संकेत के रूप में नीचे दिखाया गया है का उपयोग करें, तो आप को पता चल जाएगा। पॉइंटर को कैसे बढ़ाएं और मूल्यों को सरणी के विभिन्न स्थानों में कैसे प्राप्त करें।
आप तीर पढ़ने के लिए सूचक स्थान स्थानांतरित कर सकते हैं। आप बाहर चलने वाले पॉइंटर स्थान के साथ सरणी पढ़ सकते हैं।
बाहर जाने सूचक स्थानों
#include<stdio.h>
#define MAX 5
main()
{
int a[MAX];
int i;
int *ptr;
ptr = &a[0];
printf("Enter Values of array\n");
for(i=0;i<MAX;i++)
{
printf("Enter a[%d] = ",i);
scanf("%d",ptr+i); //we are not moving ptr position we scaning each time into next location by incrementing i
}
}
जब वृद्धि की जाती सूचक तो वेतन वृद्धि सूचक के प्रकार पर निर्भर करता है के साथ सूचक स्थानों
#include<stdio.h>
#define MAX 5
main()
{
int a[MAX];
int i;
int *ptr;
ptr = &a[0];
printf("Enter Values of array\n");
for(i=0;i<MAX;i++)
{
printf("Enter a[%d] = ",i);
scanf("%d",ptr);
ptr++; //moving pointer
}
}
2.reading सरणियों ले जाकर 1.reading सरणियों। यहां पीटीआर पूर्णांक सूचक है इसलिए पीआरटी + 1 पीआरटी + आकार (int) स्थानों में वृद्धि करेगा।
int a[5][5];
इस दो आयामी सरणी ताकि आप 5 संकेत यहाँ की आवश्यकता होती है तो मैं घोषित किया गया था सूचक सरणी स्कैन करने के लिए है।
#include<stdio.h>
#define MAX 5
main()
{
int a[MAX][MAX],i,j;
int *pointer[MAX];
for(i=0;i<MAX;i++)
pointer[i]=&a[i][0]; //initializes the pointers
printf("Enter elements :\n");
for(i=0;i< MAX;i++)
{
for(j=0;j<MAX;j++)
{
printf("Enter the a[%d][%d] element: ",i,j);
scanf("%d",pointer[i]+j); //each time you will move like 00 01 02 03 04 and second time 10 11 12 13 14 and so on...
//printf("%u or %x",pointer[i]+j,pointer[i]+j);//un comment this line and see the addresses how the address incrementing for each element
}
}
printf("The Given Matrix:\n\n");
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
{
printf("%d",*(pointer[i]+j));
printf("\t\t");
}
printf("\n\n");
}
}
प्रत्यक्ष scaning
printf("Enter elements :\n");
for(i=0;i< MAX;i++)
{
for(j=0;j<MAX;j++)
{
printf("Enter the a[%d][%d] element: ",i,j);
scanf("%d",&a[i][j]); //we can't do like this a++ or ++a or a+i this is illegal in C. for that purpose we are using pointers
}
}
आप नीचे दिए गए पुस्तक में ऊपर सामान के सबसे पाया होगा।
please goto this link : read the wiki and read
The C Programming Language (Second edition) - Brian W. Kernighan and Dennis M. Ritchie
पढ़ें [सी तार पर एक ट्यूटोरियल] (http://www.codingunit.com/c-tutorial-strings-and-string-library-functions) – Dariusz
@PP में थोड़ा कृपालु ध्वनि हो सकता है उनकी टिप्पणी लेकिन वह बिल्कुल सही है: पहले एक अच्छी सी प्रोग्रामिंग पुस्तक पढ़ें। केर्निगन और रिची की _ सी सी प्रोग्रामिंग भाषा_ एक उत्कृष्ट संसाधन है। – SolarBear
@ पीपी बिल्कुल सही है। आप तब तक सी लिखना शुरू नहीं कर सकते जब तक आप समझते हैं कि एक चर के लिए क्यों और आवश्यकता नहीं है, न कि दूसरे। यह थ्रॉटल और ब्रेक के बीच अंतर जानने के बिना कार चलाने की कोशिश करना है। –