关于指针的说明1——指针.c
来源:互联网 发布:泰格软件好用吗 编辑:程序博客网 时间:2024/06/05 10:07
/*总结:1 值传递, 不能改变实参的值。 2 指针传递(一维),不能改变指针的值,可以改变指针所指向的值。 3 指针的地址传递(二维),可以改变指针(一维)的值,可以改变指针所指向的值。*/ #include "stdafx.h"#include <stdlib.h>void fun1(int *a) //函数传递地址给形参a,形参a改变,原来的实参不变{ int b = 3; a = &b;}void fun2(int *a) //函数传递地址给形参a,地址所指向的值发生改变{ int b = 3; *a = b;}void test1(){ int a = 1; printf("&a = %p, a = %d\n", &a, a); //result: &a = 0018FEF0, a = 1 fun1(&a); printf("&a = %p, a = %d\n", &a, a); //result: &a = 0018FEF0, a = 1}void test2(){ int a = 1; printf("&a = %p, a = %d\n", &a, a); //result: &a = 0018FEF0, a = 1 fun2(&a); printf("&a = %p, a = %d\n", &a, a); //result: &a = 0018FEF0, a = 3}void test3(){ int b = 1; int *a = &b; printf("a = %p, *a = %d\n", a, *a); //result: a = 0018FEF0, *a = 1 fun1(a); printf("a = %p, *a = %d\n", a, *a); //result: a = 0018FEF0, *a = 1}void test4(){ int b = 1; int *a = &b; printf("a = %p, *a = %d\n", a, *a); //result: a = 0018FEF0, *a = 1 fun2(a); printf("a = %p, *a = %d\n", a, *a); //result: a = 0018FEF0, *a = 3}void fun3(int **a) //传递二维指针(指针的地址),改变地址的指向就是改变了一维指针{ int b = 3; *a = &b;}void test5(){ int b = 1; int *a = &b; printf("a = %p, *a = %d\n", a, *a); //result: a = 0018FEF0, *a = 1 fun3(&a); printf("a = %p, *a = %d\n", a, *a); //result: a = 0018FE90, *a = 3} int main(int argc, char* argv[]){ //test1(); //test2(); //test3(); //test4(); //test5(); return 0;}
0 0
- 关于指针的说明1——指针.c
- 关于指针的说明2——链表.c
- 关于C的指针
- C指针的一些说明
- 彻底搞定C指针——指向指针的指针
- 彻底搞定C指针——指针的指针
- 再谈C语言指针—指向另一指针的指针
- 再谈C语言指针—指向另一指针的指针
- c语言—指针基础(1:指针的基本概念)
- C语言——关于指针传递指针
- C语言指针说明
- 关于C/C++的指针
- 关于 指针 ------------------C的精髓
- 关于c的各种指针
- 关于C的指针问题
- 关于C语言的指针
- C 关于指针的疑惑
- 关于C指针的记录
- Mikado - pick your transcript
- <顺序表>从一个无序顺序表(也可以有序)中删除重复的元素,并使剩余元素间的相对次序保持不变
- 浅谈自动化功能测试
- ini配置文件读写操作入门
- unity帧动画的几种方式比较
- 关于指针的说明1——指针.c
- 分枝限界法
- 3831: [Poi2014]Little Bird
- 数据的优化
- Best Time to Buy and Sell Stock
- JZOJ4090. 树上三角形
- 安装和测试Kafka
- 【Java】中文乱码不再乱
- jface databinding:可多选的widget List组件selection项目与java.util.List对象的双向数据绑定