原视频:https://www.bilibili.com/video/av19474068/?spm_id_from=333.788.videocard.1
警告版本
#include<stdio.h>
int main() {
int *p; //就是地址
int a = 3;
*p = a; //p等于a的地址,也就是*p=a;此处有问题,后面有正解!!!
printf("%d\n", *p);
return 0;
}
结果是3
2
//int p; // 定义变量p
//int *p;
// 定义指针变量*p,
// p是地址(指针),
// *p意味着是地址p的一个变量,指针变量
// 使用指针,就要定义指针变量*p ,等于定义了指针
//int p; // 定义变量p
//int *p; 定义指针变量
// 定义指针变量*p,
// p是地址(指针),&a 是 0019ff00 ,是a的地址
// *p意味着是地址p的一个变量,指针变量,指向了地址里面的内容 3
// 使用指针,就要定义指针变量*p ,等于定义了指针
但是以上函数还是有警告的,p只是定义了地址(指针),而p的地址无从得知,因此*p不能直接作为一个变量去使用
正确版本
#include<stdio.h>
int main() {
int *p; //就是地址
int a = 3;
p = &a; //p等于a的地址,也就是*p=a;正解!!!
printf("%d\n", *p);
return 0;
}
结果是3
问题二:
1