Academic Tutorials



English | French | Portugese | Dutch | Italian
Google

in linea

Domestico Codici sorgente E-Libri Trasferimenti dal sistema centrale verso i satelliti Metterseli in contatto con Circa noi

HTML Tutorials
HTML Tutorial
XHTML Tutorial
CSS Tutorial
TCP/IP Tutorial
XML Tutorials
XML Tutorial
XSL Tutorial
XSLT Tutorial
DTD Tutorial
Schema Tutorial
XForms Tutorial
XSL-FO Tutorial
XML DOM Tutorial
XLink Tutorial
XQuery Tutorial
XPath Tutorial
XPointer Tutorial
RDF Tutorial
SOAP Tutorial
WSDL Tutorial
RSS Tutorial
WAP Tutorial
Web Services Tutorial
Browser Scripting
JavaScript Tutorial
VBScript Tutorial
AJAX Tutorial
DHTML Tutorial
HTML DOM Tutorial
WMLScript Tutorial
E4X Tutorial
Server Scripting
ASP Tutorial
PHP Tutorial
PERL Tutorial
SQL Tutorial
ADO Tutorial
.NET (dotnet)
Microsoft.Net
XML Web Services
ASP.Net
.Net Mobile
C# : C Sharp
ADO.NET
VB.NET
Multimedia
SVG Tutorial
Flash Tutorial
Media Tutorial
SMIL Tutorial
Web Building
Web Browsers
Web Hosting
W3C Tutorial
Web Building
Web Quality
Web Semantic
Web Careers
Java Tutorials
Java Tutorial
JSP Tutorial
Servlets Tutorial
Struts Tutorial
EJB Tutorial
JMS Tutorial
JMX Tutorial
Programming Langauges
C Tutorial
C++ Tutorial
Visual Basic Tutorial
Data Structures Using C
Soft Skills
Communication Skills
Time Management
Project Management
Team Work
Leadership Skills
Corporate Communication
Negotiation Skills


pointers in C
Previous Next




Che cosa è pointer?

In c, un pointerè una variabile che indica a o riferisce una posizione di memoria in cui i dati sono memorizzati. Nel calcolatore, ogni cellula di memoria ha un indirizzo che può essere usato per accedere a quella posizione in modo da ai punti di variabile di pointerad una posizione che di memoria possiamo accedere a e che cambiamo il contenuto di questa posizione di memoria via l'pointer.




Dichiarazione dell'pointer:

Un pointerè una variabile che contiene la posizione di memoria di un'altra variabile nei dati dello shich è immagazzinata. Usando l'pointer, cominciate specificando il tipo di dati memorizzati nella posizione. L'asterisco contribuisce a dire al compilatore a che stiate generando una variabile di pointer. Infine dovete dare il nome della variabile. La sintassi è come indicata sotto.

type * variable name



Il seguente esempio illustra il declataion della variabile di pointer
int *ptr;
float *string;



Operatore di indirizzo:

Una volta che dichiariamo una variabile di pointerallora dobbiamo indicarli a qualcosa che possiamo fare questo assegnando all'pointerl'indirizzo della variabile desiderate indicare come nel seguente esempio:

ptr=#

Il suddetto codice dice a che l'indirizzo dove numerico sia depositi nello stampante variabile. Lo stampante variabile ha il valore 21260, se numerico è immagazzinato nell'indirizzo di memoria 21260 allora




Il seguente programma illustra la dichiarazione dell'pointer
/* A program to illustrate pointer declaration*/

main()
{
int *ptr;
int sum;
sum=45;
ptr=&sum
printf ("\n Sum is %d\n", sum);
printf ("\n The sum pointer is %d", ptr);
}



Espressioni dell'pointer& aritmetica dell'pointer:
Nelle espressioni, come altre variabili di pointerdi variabili può essere usato. Per esempio se p1 e p2 sono inizializzati correttamente ed pointers dichiarati, allora le seguenti dichiarazione sono valide.
y=*p1**p2;
sum=sum+*p1;
z= 5* - *p2/p1;
*p2= *p2 + 10;

La C permette che noi sottraiamo i numeri interi a o aggiungiamo i numeri interi dagli pointers così come per sottrarre un pointerdall'altro. Possiamo anche usare gli operatori corti della mano con gli pointers p1+=; sum+=*p2; ecc., usando gli operatori relazionali, possiamo anche confrontare gli pointers come le espressioni quale p1 >p2, p1==p2 e p1! =p2 sono permessi.




Il seguente programma illustra l'espressione dell'pointere l'aritmetica dell'pointer
/*Program to illustrate the pointer expression and pointer arithmetic*/
#include< stdio.h >
main()
{ int ptr1,ptr2;
int a,b,x,y,z;
a=30;b=6;
ptr1=&a;
ptr2=&b;
x=*ptr1+ *ptr2 6;
y=6*- *ptr1/ *ptr2 +30;
printf("\nAddress of a +%u",ptr1);
printf("\nAddress of b %u",ptr2);
printf("\na=%d, b=%d",a,b);
printf("\nx=%d,y=%d",x,y);
ptr1=ptr1 + 70;
ptr2= ptr2;
printf("\na=%d, b=%d,"a,b);
}



pointers e funzione:

In una dichiarazione di funzione, l'pointermolto è usato. A volte, soltanto con un pointeruna funzione complessa può essere rappresentata facilmente e successo. In una definizione di funzione, l'uso degli pointers può essere classificato in due gruppi.

  1. Call by reference
  2. Call by value.



Chiamata da valore:

Abbiamo visto che ci sarà un collegamento stabilito fra i parametri convenzionali e reali quando una funzione è invocata. Non appena l'immagazzinaggio provvisorio è generato dove il valore dei parametri reali è memorizzato. I parametri convenzionali prende il relativo valore da deposito il meccanismo del trasferimento di dati fra convenzionale ed i parametri reali permette il meccanismo di parametri reali del trasferimento di dati si riferisce come chiamata da valore. Il parametro convenzionale corrispondente rappresenta sempre una variabile locale nella funzione denominata. Il valore corrente del parametro reale corrispondente si trasforma in nel valore iniziale del parametro convenzionale. Nel corpo del parametro reale, il valore del parametro convenzionale può essere cambiato. Nel corpo del subprogram, il valore del parametro convenzionale può essere cambiato dalle dichiarazione dell'input o di assegnazione. Ciò non cambierà il valore dei parametri reali.

/* Include< stdio.h >

void main()
{
int x,y;
x=20;
y=30;
printf("\n Value of a and b before function call =%d %d",a,b);
fncn(x,y);
printf("\n Value of a and b after function call =%d %d",a,b);
}

fncn(p,q)
int p,q;
{
p=p+p;
q=q+q;
}



Chiamata da riferimento:

L'indirizzo dovrebbe essere pointers, quando passiamo ad indirizzo ad una funzione la ricezione di parametri. Usando gli pointers, il processo di chiamata della funzione per passare l'indirizzo della variabile è conosciuto come chiamata da riferimento. La funzione che è denominata da riferimento può cambiare il valore della variabile usata nella chiamata.

/* example of call by reference*?

/* Include< stdio.h >
void main()
{
int x,y;
x=20;
y=30;
printf("\n Value of a and b before function call =%d %d",a,b);
fncn(&x,&y); printf("\n Value of a and b after function call =%d %d",a,b);
}
fncn(p,q)
int p,q;
{
*p=*p+*p;
*q=*q+*q;
}



pointeragli arrays:

un allineamento è realmente molto simile come l'pointer. Possiamo dichiarare poichè il *a interno è un indirizzo, perché a [0] il primo elemento di arrays come a [0] e il *a è inoltre un indirizzo la forma della dichiarazione è inoltre equivalente. La differenza è pointerpuò comparire a sinistra dell'operatore di assegnazione ed è a è una variabile che è lvalue. Il nome di allineamento non può comparire come la parte di sinistra dell'operatore di assegnazione ed è costante.

/* A program to display the contents of array using pointer*/
main()
{
int a[100];
int i,j,n;
printf("\nEnter the elements of the array\n");
scanf(%d,&n);
printf("Enter the array elements");
for(I=0;I< n;I++)
scanf(%d,&a[I]);
printf("Array element are");
for(ptr=a,ptr< (a+n);ptr++)
printf("Value of a[%d]=%d stored at address %u",j+=,*ptr,ptr);
}



pointers e strutture

Sappiamo che il nome dei basamenti di allineamento per l'indirizzo del relativo elemento dello zeroth lo stesso concetto fa domanda per i nomi degli arrays delle strutture. Supporre che l'articolo è una variabile di allineamento del tipo dello struct. Considerare la seguente dichiarazione:

struct products
{
char name[30];
int manufac;
float net;
item[2],*ptr;

questo stampante di dichiarazione come oggetti di dati dell'pointerdi tipo prodotti dello struct e dichiara l'articolo come allineamento di due elementi, ogni tipo prodotti dello struct.




pointers sull'pointer

Un pointercontiene il valore dell'immondizia fino a inizializzarlo esso. Poiché i compilatori non possono rilevare gli errori non possono essere conosciuti fino a che non eseguiamo il programma ci ricordiamo di che anche se possiamo individuare un risultato errato, uninitialized o scorrettamente avuto inizializzato gli pointers che non può fornire alcuna prova per noi ai problemi sospetti in pointers. Per esempio le espressioni come

*ptr++, *p[],(ptr).member




Previous Next

Keywords: Pointers in C, double pointers in c, pointers in c language, pointer in c, pointers in c++, function pointers in c, function pointer in c, using pointers in c, data types in c, array of pointers in c, pointers in c#, pointer to pointer in c, pointer to a pointer in c, pointers to functions in c, file pointer in c, file pointers in c


HTML Quizes
HTML Quiz
XHTML Quiz
CSS Quiz
TCP/IP Quiz
XML Quizes
XML Quiz
XSL Quiz
XSLT Quiz
DTD Quiz
Schema Quiz
XForms Quiz
XSL-FO Quiz
XML DOM Quiz
XLink Quiz
XQuery Quiz
XPath Quiz
XPointer Quiz
RDF Quiz
SOAP Quiz
WSDL Quiz
RSS Quiz
WAP Quiz
Web Services Quiz
Browser Scripting Quizes
JavaScript Quiz
VBScript Quiz
AJAX Quiz
DHTML Quiz
HTML DOM Quiz
WMLScript Quiz
E4X Quiz
Server Scripting Quizes
ASP Quiz
PHP Quiz
PERL Quiz
SQL Quiz
ADO Quiz
.NET (dotnet) Quizes
Microsoft.Net Quiz
XML Web Services Quiz
ASP.Net Quiz
.Net Mobile Quiz
C# : C Sharp Quiz
ADO.NET Quiz
VB.NET Quiz
Multimedia Quizes
SVG Quiz
Flash Quiz
Media Quiz
SMIL Quiz
Web Building  Quizes
Web Browsers Quiz
Web Hosting Quiz
W3C Quiz
Web Building Quiz
Web Quality Quiz
Web Semantic Quiz
Web Careers Quiz
Java Quizes
Java Quiz
JSP Quiz
Servlets Quiz
Struts Quiz
EJB Quiz
JMS Quiz
JMX Quiz
Programming Langauges Quizes
C Quiz
C++ Quiz
Visual Basic Quiz
Data Structures Using C Quiz
Soft Skills Quizes
Communication Skills Quiz
Time Management Quiz
Project Management Quiz
Team Work Quiz
Leadership Skills Quiz
Corporate Communication Quiz
Negotiation Skills Quiz

Privacy Policy
Copyright © 2003-2008 Vyom Technosoft Pvt. Ltd., All Rights Reserved.