问题一:不同类型的指针 不能互相转换 一种类型的指针 指向对应的数据类型 ,否则编译出错
#include <stdio.h>
#include <stdlib.h>
/*
1.不同类型的指针 不能互相转换 一种类型的指针 指向对应的数据类型
*/
main(){
double d = 3.1415926;
int* p ;
p = &d;//编译出错
printf("通过指针p,打印出double d的值:%d\n",p);
system("pause");
}
问题二:未经初始化的指针 不能直接使用
#include <stdio.h>
#include <stdlib.h>
/*
2.未经初始化的指针 不能直接使用
*/
main(){
int* p;
printf("打印指针p所指向的值:%d\n",*p);
system("pause");
}
问题三:函数的变量 不能够跨函数进行访问
#include <stdio.h>
#include <stdlib.h>
/*
3.函数的变量 不能够跨函数进行访问
*/
void f(int** q){//由于接收的是int*类型的内存地址类型所以写成int**,也叫二级指针
int i = 3;
printf("f函数中i的地址 %#x\n",&i);
*q = &i;
}
main(){
int* p;
f(&p);
printf("main函数中p的地址:%#x\n",p);
printf("通过指针p将f()中的i的值打印:%d\n",*p);//-1,不同编译器打印结果不一样,xp是-1,我win7 64位1972800725
system("pause");
}