C语言_指针
来源:互联网 发布:编程语言有什么用 编辑:程序博客网 时间:2024/05/22 09:14
//***** 指针 *****//***** 指针变量 *****void test1(){ int i = 100; int *p = NULL; p = &i; printf("i:%d\n",*p); /* int *p 定义一个整形指针变量 p = &i 把i的地址赋给指针变量 指针就是存放别的变量的地址 */}//***** 指针操作 *****void test2(){ int i = 100; int *p = NULL; p = &i; *p = 101; printf("i:%d\n",*p); /* *p 访问指针p指向的数值 */}//***** 空指针 *****void test3(){ int *p; p = NULL; /* p = NULL,NULL是一个宏,代表0,也就是该指针变量为0 指针是一个变量,那变量如何没有在定义时进行初始化,那系统就会给该指针变量一个随机值,所有我们必须指针变量赋为空 */}//***** 指针变量更改 *****void test4(){ int a = 100; int b = 200; int *p = NULL; p = &a; printf("a:%d\n",*p); p = &b; printf("b:%d\n",*p); int i = 300; p = &i; printf("p保存的地址:0x%p\n",p); p ++; printf("p保存的地址:0x%p\n",p); p --; printf("p保存的地址:0x%p\n",p); p = p - 2; printf("p保存的地址:0x%p\n",p); /* 既然指针变量是一个变量,变量可以赋值,可以加减,可以比较大小,那指针变量也是可以的 p ++ 其实就是p + sizeof(int) * 1 p -- 其实就是p - sizeof(int) * 1 p = p - 2 其实就是p = p - siezeof(int) * 2 */}//***** 指针自身地址 *****void test5(){ int a = 100; int *p = NULL; p = &a; printf("p保存的地址:0x%p\n",p); printf("p自身的地址:0x%p\n",&p); printf("p指向的变量:%d\n",*p); /* 指针既然存放的是别的地方的指针,但它自己也是存放在内存中的,那它自身也是有内存地址的 p一旦定义了,编译器就会自动在栈中开辟一块内存存放指针p */}//***** 指针类型 *****void test6(){ int a = 100; int *p1 = NULL; p1 = &a; float b = 15.0f; float *p2 = NULL; p2 = &b; printf("a:%d\n",*p1); printf("b:%f\n",*p2); /* 指针类型和指针指向的变量的类型是两个不同的概念,整形指针只能指向整形变量,浮点型指针只能指向浮点型变量 两者类型必须匹配 */}//***** 常量指针const *****void test7(){ int a = 100; int *const p = &a; //p ++; // 由于指针是常量指针,假如p ++操作,将会出错 *p = 103; // 由于指针指向的数值不是常量,所以可以修改指向的数值的值 printf("p保存的地址:0x%p\n",p); printf("p指向的数值:%d\n",*p); /* 常量const指针,就是指针不可变,常量指针只能定义时初始化 */}//***** 指向常量的指针 *****void test8(){ int a = 100; const int *p = &a; p ++; // 由于指针p不是常量指针,所以可以p ++ //*p = 103; // 由于指针p指向的数值是常量,所以不能更改指针p指向的常量 printf("p保存的地址:0x%p\n",p); printf("p指向的数值:%d\n",*p); /* 指针指向的是常量,所以指针指向的数值不可以改变 */}//***** 指向常量的常指针 *****void test9(){ int a = 100; const int *const p = &a; //p ++; // 由于指针是常量指针,假如p ++操作,将会出错 //*p = 103; // 由于指针p指向的数值是常量,所以不能更改指针p指向的常量 printf("p保存的地址:0x%p\n",p); printf("p指向的数值:%d\n",*p);}
0 0
- C语言_指针
- C语言_指针
- C语言_指针
- C语言_指针
- C语言-指针_笔记
- C语言_高级指针
- C语言_指针函数
- C语言_函数指针
- C语言_指针随笔
- C语言_函数指针数组指针
- C语言基础三_指针
- 黑马程序员—C语言_指针
- iOS C语言8_指针
- iOS C语言11_函数指针
- C语言_数组与指针
- 20170215C语言提升08_指针_02数组指针及指针数组及函数指针
- C语言-指针数组_大小写字母转换
- C语言编程_指针变量的定义和使用
- ubuntu 于添加和删除PPA源
- C#中Lambda表达式
- JavaScript实现左右Select列表框交换数据
- js事件驱动机制单oncontextmenu,onselectstart事件
- Java开发中的23种设计模式
- C语言_指针
- ZTree 获取节点信息
- 6个强大的AngularJS扩展应用
- Activity Testing
- OP-AMP ISSUES--NOISE
- Nginx+Tomcat+Memcached集群
- easyui和uploadify一同使用winform乱码问题
- oracle connect by level 应用
- 为什么线性规划问题的最优解一定能在可行域顶点中找到?