C语言基础三_指针
来源:互联网 发布:php 代码去除空白 编辑:程序博客网 时间:2024/05/01 09:04
指针
1.直接引用:
char a;
a=10;
2.间接引用:
char a=9;
char *b;//或者char *b=&a;
b=&a;//*b=&a是错的
printf("%d\n",*b);//a中的存储内容
用来存放变量地址的变量就是指针变量,b指向a,b是指针。
改变a的值:*b=10;//*b代表存储空间,即a的存储空间
3.实例:
交换两个变量的值:
void swap(char *v1,char *v2){//在16位编译环境下,指针都是占2个字节char temp;temp=*v1;*v1=*v2;*v2=temp;}int main(int argc,const char * argv[]){char a=10;char b=9;swap(&a,&b);}
注意:指针要与指向地址 数据类型相同。
若定义:,打印出来的*p值为513,即从p值开始取两个字节数据:0000 0010 0000 0001
ps:内存中声明变量存储方式顺序相反;取出存储内容顺序也相反
4.指针与数组及函数:
遍历数组:char a[3]={1,2,3}
int *p=a;
此时p+1相当于,p+1*2,依然试用,这就说明指针分类型的意义。结论:利用指针加i相当于访问第i个元素
若一个函数的形参是数组,调用它时可以传指针也可以传数组,条件是指针和数组类型相同: change(p) or change(a)
若一个函数的形参是指针,则既可以传数组名,也可以传指针变量。
指针和数组的关系总结如下:
遍历字符串:
2种类似的方式:第一种是定义了一个字符串变量,s中的每一个字符都可以改变。第二种事定义字符串常量,每一个字符都改变不了。
函数返回类型也可以是指针:char * test(){ return "itcast";}
指针可以指向一个函数:由于函数也有内存地址,指针可以存储地址,所以是可以的。
函数名就代表函数的地址。
定义:指针占据函数名:
int sum(int a,int b){return a+b;}int (*p)(int ,int); p=sum;//利用p间接调用sum函数(*p)(5,6)//取函数值p(5,6)//不取
=======
通过这种方式来调用:利用函数指针,把函数当参数传来传去。
若开发时需要更改成减法:
只需要添加一个减法方法:
再通过就能实现,把算法传进来就行了,不用改变count函数。
0 0
- C语言基础三_指针
- c语言基础(三)指针篇
- 20161217C语言基础20_指针的基础概念
- C语言_指针
- C语言_指针
- C语言_指针
- C语言_指针
- C语言------指针(三)
- C语言指针(三)
- c语言 指针基础
- C语言指针基础
- C语言基础 指针
- C语言基础 --指针
- C语言基础-指针
- C语言指针基础
- C语言--指针基础
- C语言基础--指针
- C语言-指针_笔记
- mybatis模糊查询如何防止sql注入
- Eclipse.ini的相关说明
- 好文章——改变计算技术的伟大算法
- linux 中文乱码问题的解决方法
- 跳转(Forward)和页面重定向(Redirect)的区别
- C语言基础三_指针
- C# 大文本的读取处理
- python os.walk
- 12.04安装tftp服务器
- uitableview group的一些问题 (设置两个section之间的距离,设置背景颜色 等)在plain下去掉foot view的粘性
- MFC控件之ListBox基本用法
- 黑马程序员 基础 泛型补充
- Xcode 5 解决 The operation couldn’t be completed. (NSURLErrorDomain error -1012.)
- 仿iOS 7后台侧边菜单源码分析和总结