scanf legge particolare tipo di dati in indirizzi che sono passati come seconda, thrid, fouth ecc argomenti ...
int var;
qui var viene valore e & var è indirizzo
scanf("%d",&var);
la dichiarazione di cui sopra dice ==> leggere% d (intero) tipo di dati in indirizzo & var
char s[20];
qui s è l'indirizzo non il valore. perché qui è una matrice di noleggio (siamo chiamati come stringa)
nome di matrice indica il suo indirizzo. s == & s [0], entrambi sono uguali.
scanf("%s",s);
l'istruzione precedente dice ==> leggi% s (matrice di caratteri) tipo di dati nella posizione dell'indirizzo a partire da s.
int a[20];
vedere questo codice
#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.
}
}
In C Noi non abbiamo avuto alcun identificatore di formato unico per la scansione di gruppo di interi in un momento come come gruppo di scansione di personaggi al tempo con la aiuto di% s.
E qui a = & a [0];
è possibile eseguire la scansione di un singolo valore intero direttamente all'indirizzo indicato da a.
scanf("%d",a);
printf("a[0]=%d\n",a[0]);
se si immette 10 quindi stampa questo a [0] = 10.
uso di puntatori:
se si utilizza puntatori come mostrato di seguito, poi si verrà a sapere. come incrementare il puntatore e ottenere i valori in diverse posizioni dell'array.
è possibile spostare la posizione del puntatore per leggere gli array. puoi leggere gli array senza la posizione del puntatore in movimento.
1.Reading array spostando destinazioni puntatore
#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
}
}
array 2.reading con fuori in movimento riprese puntatore
#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
}
}
quando il puntatore incrementato quindi l'incremento dipende dal tipo di puntatore. Qui ptr è un puntatore intero, quindi ptr + 1 incrementerà le posizioni ptr + sizeof (int).
int a[5][5];
Si tratta di due matrice bidimensionale in modo avete bisogno di qui 5 puntatori per eseguire la scansione quindi ero dichiarato allineamento puntatore.
#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");
}
}
Scansione diretto
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
}
}
si trovano la maggior parte delle cose al di sopra del libro di seguito.
please goto this link : read the wiki and read
The C Programming Language (Second edition) - Brian W. Kernighan and Dennis M. Ritchie
Leggi [un tutorial su stringhe C] (http://www.codingunit.com/c-tutorial-strings-and-string-library-functions) – Dariusz
@PP potrebbe sembrare un po 'condiscendente in il suo commento, ma ha assolutamente ragione: leggere prima un buon libro di programmazione C. Il linguaggio di programmazione C di Kernighan e Ritchie è una risorsa eccellente. – SolarBear
@PP ha assolutamente ragione. Non puoi iniziare a scrivere C finché non capisci perché è necessario per una variabile e non l'altra. È come cercare di guidare una macchina senza conoscere la differenza tra acceleratore e freno. –