本帖最后由 736010695 于 2014-11-18 16:17 编辑
#include <stdio.h> int main() { /* 注意一: int *p; double a = 10.0; p = &a; 把一个整型指针变量指向一个双精度浮点型变量,这样是不合理,虽然编译器不会报错,但禁止这样写代码 */
/* 注意二: int *p; p = 200; 这样写错误:指针只能储存地址,显然200不是地址,内存地址是以十六进制形式储存,而且一般地址都很大 */
/* 注意三: int *p; printf("%d\n", *p); 指针变量在初始化前,禁止间接访问其他储存空间 */
/* 注意四: int *p; int a = 10; p = &a; 可以直接写成:int *p = &a; 但不能这样写:int *p; int a = 10; *p = &a;这句等于是把a的地址传给a,是一个错误写法 */
return 0; }
#include <stdio.h> int main() { int a = 10; int *p = &a;
//再定义一个指针变量指向指针变量p int **p2 = &p; /* 现在修改变量a的值的方法: 1、直接赋值:a = 5; 2、通过指针p:*p = 5; 3、通过指针p2找到指针p的储存空间然后再进入到a的储存空间修改a的值 **P2 = 5; */ **p2 = 5; printf("%d\n", a);
return 0;
}
|