From WikiChip
Editing c/variables
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.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | {{ | + | {{C Guide}} |
− | + | Many programs are far more complex than just printing a sentence or two on the screen. To be able to perform more complex operations and calculations we need a way to store values temporarily during the program execution. These named stored locations are called '''variables'''. | |
== Data Types == | == Data Types == | ||
− | {{main| | + | {{main|Data types - C|l1=Data Types}} |
− | + | In [[C]], every variable must have a type which specifies what kind of data it could hold. The type of variable determines how the variable is stored and what operations can be performed on it. For example, a variable of type int can store integers such as 2, -9, 83, and 5294. By contrast with float, which is capable of storing floating point values such as 3.4, 30, -943.234, and 2e6. C provides a wide variety of types in addition to an int and a float, including: char, short, and double. | |
=== Minimum Magnitudes === | === Minimum Magnitudes === | ||
Line 13: | Line 13: | ||
For example, the following are valid variable names: | For example, the following are valid variable names: | ||
− | + | x foo | |
− | + | x_y_z BaR | |
− | + | _foo bar45 | |
− | + | _1 baz | |
− | + | thisIsAReallyLongVariableName | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
The following, however, are not valid variable names: | The following, however, are not valid variable names: | ||
− | + | 2 $apples | |
− | + | 5foo double | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Additionally, the name of a variable cannot be a | + | Additionally, the name of a variable cannot be a [[Reserved keywords - C|reserved word]]. For example, a variable named <code>while</code> or <code>register</code> is illegal. |
== Variable Declaration == | == Variable Declaration == | ||
A '''variable declaration''' is a statement that announces to the translator the creation of a new object and the kind of properties it possess. These properties include: | A '''variable declaration''' is a statement that announces to the translator the creation of a new object and the kind of properties it possess. These properties include: | ||
− | * The | + | * The [[storage class - C|object's lifetime]] |
− | * The object's | + | * The object's [[data types - C|data type]] |
− | * Whether an object is | + | * Whether an object is [[volatile - C|volatile]] |
− | * Whether it's a | + | * Whether it's a [[restricted pointers - C|restricted pointer]] |
− | * Whether it's an | + | * Whether it's an [[atomic variables - C|atomic variable]] |
− | * Whether an object is | + | * Whether an object is [[const - C|modifiable]] |
These properties are collectively named ''declaration-specifiers''. | These properties are collectively named ''declaration-specifiers''. | ||
Line 94: | Line 77: | ||
== Object's size == | == Object's size == | ||
− | {{main| | + | {{main|sizeof operator - C|l1=sizeof operator}} |
− | In many cases it might be useful to know the size of an object. Knowing the size of an object is also required if you want to allocate the object dynamically. The size of the object can be retrieved via the ''' | + | In many cases it might be useful to know the size of an object. Knowing the size of an object is also required if you want to allocate the object dynamically. The size of the object can be retrieved via the '''[[sizeof operator - C|sizeof]]''' operator which returns the amount of storage, in bytes, that is required to store an object of the type of the operand specified. The [[sizeof operator - C|sizeof operator]] should always be used in order to [[hard-code]] machine-dependent type sizes. |
The sizeof operator has the following syntax: | The sizeof operator has the following syntax: | ||
Line 124: | Line 107: | ||
long y; | long y; | ||
printf("Size of 'x' is: %zu, and 'y' is: %zu\n", sizeof x, sizeof y); | printf("Size of 'x' is: %zu, and 'y' is: %zu\n", sizeof x, sizeof y); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
return 0; | return 0; | ||
} | } |