C语言指针
来源:互联网 发布:网络布线验收报告 编辑:程序博客网 时间:2024/05/29 18:35
准备复习C指针,本博客长期更新
地址和内容概念
int main(){ int i=3; int *pointer; pointer=&i; printf("%d",*pointer); return 0;}
输出:
3
int main(){ int i=3; int *pointer; pointer=&i; printf("%d",pointer); return 0;}
输出:
4783112 此时为地址
倘若
int main(){ int i=3; int pointer=&i; printf("%d",pointer); return 0;}
编译出错
指针变量
使用指针变量
int main(){ int a=100,b=10; int *p1,*p2; p1=&a,p2=&b; printf("*p1=%d,*p2=%d",*p1,*p2);}
输出
*p1=100,*p2=,10
定义指针变量
float *p1; char *p2; int a,b; int *p3=&a,*p4=&b; int *p5; p5=&a; p3=2000;//错误
引用指针变量
- 给指针变量赋值:p=&a;
- 引用指针变量指向的变量:p=&a;*p=1;printf(“%d”,*p);
- 引用指针变量的值,printf(“%o”,p);//输出变量地址
输入两个整数,按先大后小的顺序输出
int main(){ int *p1,*p2,*p,a,b; a=1;b=3; p1=&a;p2=&b; if (a<b){ p=p1;p1=p2;p2=p; } printf("a=%d,b=%d\n",a,b); printf("*p1=%d,*p2=%d\n",*p1,*p2);}
注意:如果改成p1=&b;p2=&a;
指针变量作为函数参数
void swap_(int *p1,int *p2){ int tem; tem=*p1;*p1=*p2; *p2=tem;}int main(){ int *p1,*p2,*p,a,b; a=1;b=3; p1=&a;p2=&b; if (a<b){ swap_(p1,p2); } printf("a=%d,b=%d\n",a,b); printf("*p1=%d,*p2=%d\n",*p1,*p2);}
错误1:tem是地址,不能保存数据
void swap_(int *p1,int *p2){ int *tem; tem=*p1;*p1=*p2; *p2=tem;}
错误2:tem是地址,*tem是数据,但是tem无确定指向
void swap_(int *p1,int *p2){ int *tem; *tem=*p1;*p1=*p2; *p2=*tem;}
错误3:实参与形参问题
void swap_2(int p1,int p2){ int tem; tem=p1;p1=p2; p2=tem;}
错误2:实参与形参问题,结果不会有所改变
void swap_2(int p1,int p2){ int tem; tem=p1;p1=p2; p2=tem;}
通过指针引用数组
指针变量作为函数参数
0 0
- C语言中的指针
- C语言指针问题
- C语言野指针
- C语言之指针
- C语言指针简介
- C语言的指针
- c语言指针点滴
- C语言的指针
- c语言指针简介
- c语言 数组 指针
- c语言指针详解
- 理解C语言指针
- c语言函数指针
- C语言指针
- C语言之指针
- c语言指针详解
- c语言中的指针
- C语言--指针,数组
- MFC打开文件对话框
- CString和string的互相转换
- JSP页面中作用域及request的使用
- C++,C#,JAVA之间webservice互操作问题探讨
- C++重载,覆盖, 隐藏三者的主要区别
- C语言指针
- Qt使用教程之指定编辑器设置
- Android UI 之 下拉刷新和上拉加载
- 自定义全屏popupWindow,自下往上出现,从上往下消失。
- 剑指offer面试题16之反转链表
- App关键页面埋点基础
- 做一个java高级程序员甚至架构师 应该掌握哪些技术
- NSHTTPCookieStorage
- 关于微信报错media data missing的解决方案