指针是一个神奇的东西……
指针类型可以强制转换,有特殊应用。
同类型指针可以相互赋值。
必须谨慎使用指针!
对指针变量绝不可以任意赋一个内存地址!
指针常量是固定指向一个对象的指针,即指针本身是常量。
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int A, *B, *C;
void *D;
int E[3] = {3, 1, 2};
struct HH{
int data;
struct HH *next;
};
int main()
{
scanf("%d", &A);
D = &A;
printf("%d\n", D);
B = &A;
//B指向A *B=__ 即 A=__
C = (int *) A;
printf("%d %d %d %d\n", B, C, &B, &C);
int *F = E;
printf("%d %d\n", *F, F);
//第一个数组变量赋值给指针
HH *G = (HH *)malloc(sizeof(HH));
G->data = E[0];
G->next = NULL;
printf("%d %d ", G->data, G->next);
HH *Head = (HH *)malloc(sizeof(HH));
//这句不加会炸的
Head->data = A;
Head->next = G;
printf("%d %d\n", Head->data, Head->next->data);
HH *K = new HH;
K->data = A;
K->next = NULL;
printf("%d", K->data);
Head = NULL;
delete Head;
//这句话一定要写!!
int y=6909806;
printf("%s\n",&y);
return 0;
}
#include<iostream>
using namespace std;
void swap1(int p, int q){
int temp = p;
p = q;
q = temp;
}
void swap2(int *p, int *q){
int *temp;
*temp = *p;
*p = *q;
*q = *temp;
}
void swap3(int *p, int *q){
int *temp;
temp = p;
p = q;
q = temp;
}
void swap4(int *p, int *q){
int temp;
temp = *p;
*p = *q;
*q = temp;
}
void swap5(int &p, int &q){
int temp;
temp = p;
p = q;
q = temp;
}
int main ()
{
int a = 1, b = 2;
//swap1(a, b);
//swap2(&a, &b);
//swap3(&a, &b);
//swap4(&a, &b);
//swap5(a, b);
cout << "a:" << a <<endl;
cout << "b:" << b <<endl;
return 0;
}
//能交换的:4、5
推荐:
C++指针超级强化训练