Static and Const are the keywords in C language, they can modify variables, functions, and so on.
1.const
Const and variable
int x = 5; Variable
const int x = 5;//in C + +, X is constant, and in the C language, X is an immutable variable
Const and Pointer types
int a = ten;
int b =;
int *PA = a;
int **ppa = pa;
*ppa = b;
**ppa = 30;
We use graphs to denote various pointing relationships.
Note: The addres
JavaScript Object ComparisonsComparison character:==,!=,===,!==,>=,= = always try to compare them straight, if the type is not the same, always try to convert.= = = More identity, no conversion on the comparison= = If it is the base type (string, number, Boolean), compare their values,var a = "123";var B = 123;Then (a==b) = true;(a===b) = false;If it is object, array, function type, compare their reference. Only if their reference is equal is true.function Point (x,y) {this.x = x;This.y = y;};
Js object comparison implementation code.
Javascript Object comparisonComparison OPERATOR: = ,! =, = ,! ==, >=, = Always try to compare them straight, if the types are different, always try to convert.=== Comparison same, comparison without conversion= If it is a basic type (string, number, boolean), compare their values,Var a = "123 ";Var B = 123;Then (a = B) = true;(A = B) = false;If it is object, array, function type, compare their reference. Only when their reference is equal is true.Functio
such as multiple classes or threads referencing the same memory, add reference count to the memory. For memory operations, you must leave null.
We know that all objects in OC are dynamically allocated. How do we manage these objects in OC? The answer is to use the reference count for management.
3. Object Memory Management in OC
In OC, the reference count is used to manage the object lifecycle.
-(Instancetype) retain OBJC_ARC_UNAVAILABLE; // Add 1 TO THE REFERENCE
-(Oneway void) release OBJC_AR
Javascript Object comparisonComparison OPERATOR: = ,! =, = ,! ==, >=, = Always try to compare them straight, if the types are different, always try to convert.=== Comparison same, comparison without conversion= If it is a basic type (string, number, boolean), compare their values,Var a = "123 ";Var B = 123;Then (a = B) = true;(A = B) = false;If it is object, array, function type, compare their reference. Only when their reference is equal is true.Function Point (x, y ){This. x = x;This. y = y;};
the same piece of memory, add a reference count to the memory, and the memory operation must be empty. We know that all objects in OC are dynamically allocated, so how do you manage those objects in OC? the answer is to use reference counting to manage .Object memory Management in 3.OCThe life cycle of an object is managed by reference counting in OC.-(Instancetype) retain objc_arc_unavailable; Citation plus 1-(OneWay void) release objc_arc_unavailable; Reference minus 1-(Instancetype) autorel
and rightchild.2. Delete the dual branch, need to find its successor, the data exchange between the two, converted to delete the subsequent relay.3. Delete both the root node and the leaf node, then adjust the corresponding root.It is important to summarize the idea that the deletion of all nodes is rooted in the deletion of the leaves.Static Bstnode*Buynode () {Bstnode*S=(Bstnode*) malloc (sizeof (Bstnode)); ASSERT (S!= NULL); memset (s),0, sizeof (Bstnode));returns;} StaticvoidFreenode (Bstno
To support the polymorphism of C + +, dynamic binding and static binding are used.1. Static type of object: the type that the object takes when declaring. is determined at compile time.2. The object's dynamic type: The declaration of the object currently referred to. Determined at run time. The dynamic type of the object can be changed, but the static type cannot be changed.For a static type and dynamic type of an object, see an example:classa{};classB: Publica{};classC: Publica{};intMain () {C(
The pointer variable holds the address, which is essentially an integer that can perform partial operations, such as addition, subtraction, comparison, and so on, see the following code:
#include
Run Result:
a=0x28ff44, pa=0x28ff44, PB=0X28FF30, pc=0x28ff2ba=0x28ff44, Pa=0x28ff48, pb=0x28ff38, pc=0x28ff2ca=0x28ff44, Pa=0x28ff40, Pb=0x28ff28, PC=0X2
. In fact, the second method is more reasonable, indicating that the variable A itself is modified, so the value of A is immutable.When the type is pointer, the circle is star *, and const is added to both sides of the left and right, which has different meanings.1) const int * pA = A; (you can write it as int const * pA = A; note that it is bounded by an asterisk)2) int * const
] * [0 SV 0][0 0 1]
The Su and SV values are the zooming rate in the X and Y axes respectively. If the value is greater than 1, The zooming rate increases. If the value is greater than 0, the zooming rate decreases when the value is smaller than 1, and if the value is less than 0, the zooming Rate.
Does the matrix look dizzy? In fact, the above formula is expanded by matrix multiplication:
{X = u * su
{Y = V * SV
That's simple. Pai_^
With the above three preparations, you can start to write code
1. Assume that there are two linear tables listed in ascending order of element values, all of which are stored as single-chain tables. Compile an algorithm to merge the two single-chain tables into a single-chain table in descending order of element values, and use the nodes of the original two single-chain tables to store the merged single-chain table.
Analysis: The difference between adding a node to the head of the linked list and adding a node to the end of the linked list
List Union (l
(7) pointer operation
In the previous articles, we have seen the usage scenarios of pointer operations and used multiple pointer operations for verification. Here we will particularly summarize the essential meaning of pointer operations.
In C language, if p, Pa, and Pb are all pointer types, such operations are called pointer operations:
, Premise: the PA and Pb types are the same.
Its essence is 1 .
node's DP value to take maximum. When the DP value is calculated along the path, the PA->SON,SON->PA boundary value dis is modified to now, and then the child node of son does not need to pa->son the farthest distance of this path .... Estimated to see this everyone is messy, look at the code bar ..... ..... ....... ........./************************************
1. The use of inheritance: Write a class, this class and the previous written class, just add some members or changes to the original member's behavior, you can inherit the original class, the grammar does not expand to say, through the code to write a few sentences summary.#include using namespacestd;classA { Public: Virtual voidFvoid) {cout "A ' f (void)!"Endl;} Virtual voidVF () {cout "A ' VF () running!"Endl;}};classD | PublicA { Public: voidFint) {cout "B ' f (int)!"Endl;} Virtual voi
Do not tangle character arrays and character pointers
Some Characteristics of character arrays and character pointers in C language are a bit fuzzy. Sometimes I only know why I want to do this, but I forget it after a while, next time, it will take time and effort to find the answer. OK. Let's take a look at it today ~
Here are two basic concepts:
1. Declare a character array
int a[10];Defines an array a with a length of 10. In other words, it defines a set of 10 objects, which are stored in adj
In practice, the intelligent pointer unique_ptr series in c ++ -- uses unique_ptr to avoid multi-layer if nestingToday, I saw this article and thought it was not very nice.
We like process control too much and write too much if else in the program.
Maybe we are very clear about the logic, but it is a disaster for people who read your code.
Many people say that polymorphism is used to avoid excessive if else nesting, but sometimes you may think that writing a new class seems a little tricky, espe
] * [0 Sv 0][0 0 1]
Where the SU,SV is the X-axis direction and the Y-axis of the zoom rate, greater than 1 o'clock magnification, greater than 0 is less than 1 o'clock reduced, less than 0 when reversed.
The matrix is not looking faint. In fact, the above-matrix multiplication is:
{x = u * Su
{y = v * Sv
It's so simple. ^_^
With the preparation of the three above, you can begin to write code implementations. The idea is simple: first use a double loop to traverse each point coordinate of the ta
{Public:Virtual void get (){Cout }};Int main (){A * pa = new ();Pa-> get ();B * pb = (B *) pa;Pb-> get ();Delete pa, pb;Pa = new B ();Pa-> get ();Pb = (B *) pa;Pb-> get ();Return 0;}
Ou
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.