Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
C syntax
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Pointers=== In declarations the asterisk modifier ({{code|*}}) specifies a pointer type. For example, where the specifier {{code|int}} would refer to the integer type, the specifier {{code|int*}} refers to the type "pointer to integer". Pointer values associate two pieces of information: a memory address and a data type. The following line of code declares a pointer-to-integer variable called ''ptr'': <syntaxhighlight lang=C>int *ptr;</syntaxhighlight> ====Referencing==== When a non-static pointer is declared, it has an unspecified value associated with it. The address associated with such a pointer must be changed by assignment prior to using it. In the following example, ''ptr'' is set so that it points to the data associated with the variable ''a'': <syntaxhighlight lang=C> int a = 0; int *ptr = &a; </syntaxhighlight> In order to accomplish this, the "address-of" operator (unary {{code|&}}) is used. It produces the memory location of the data object that follows. ====Dereferencing==== The pointed-to data can be accessed through a pointer value. In the following example, the integer variable ''b'' is set to the value of integer variable ''a'', which is 10: <syntaxhighlight lang=C> int a=10; int *p; p = &a; int b = *p; </syntaxhighlight> In order to accomplish that task, the unary [[dereference operator]], denoted by an asterisk (*), is used. It returns the data to which its operand—which must be of pointer type—points. Thus, the expression *''p'' denotes the same value as ''a''. Dereferencing a [[null pointer]] is illegal.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)