c语言解析系列(5)指针
来源:互联网 发布:网络名称侵权司法解释 编辑:程序博客网 时间:2024/06/05 03:12
F指针
地址形象的称为指针。一个已经定义的变量,想去引用它,有两种方式。一个是通过变量名,一个是通过访问该变量所在的地址。这就好比一栋房子的每个房间一样,你可通过门牌号找到这个房间的,对房间的东西进行操作,这个门牌号就是计算机给内存分配的地址,这是一种间接地方式。另外的方式就是直接找到这个房子的东西进行操作,这是一种直接的方式。
定义指针变量
类型名 *指针变量名
例:int *a
想引用一个指针变量 ,可以采用这样的方式
Int a=10;
Int *b=&a(int *b;b=&a)
Printf(“%d”,*b);
一般就是先定义一个变量a,再定义一个同类型的指针变量b,给指针变量b一个指向b=*a即可。
下面的这个例子通过引用指针变量求最大值
#include<stdio.h>
int main()
{
int a=10,b=5,*c,*d;
c=&a;//给指针一个指向
d=&b;
if(*c>*d)
printf("%d",*c);//输出该指针指向的内容
else
printf("%d",*d);
getch();
return 0;
}
指针其实给了我们很大的方便,给了我们随时随地取用变量的方法,就是找到存放变量的地址。
指针可以作为函数的参数,返回值一个是指针,一个是普通变量,对于字符型数组也是如此。
int *max(int *a,int *b)
{
if(*a>*b)
return a;
else
return b;
}
int main()
{
int a=10,b=5,*c,*d;
c=&a;
d=&b;
c=max(c,d);
printf("%d",*c);
getch();
return 0;
}
#include<stdio.h>
int max(int *a,int *b)
{
if(*a>*b)
return *a;
else
return *b;
}
int main()
{
int a=10,b=5,*c,*d;
c=&a;
d=&b;
a=max(c,d);
printf("%d",a);
getch();
return 0;
}
在下面的例子中还涉及到指针数组和数组指针的区别。指针数组一般是指向多维数组的。
指针数组:类型名 * 数组名 [数组长度],Int * p[4],[]的优先级比*高,所以这是一个指针数组,指向多维数组。
数组指针:类型名 *数组名 [数组长度],例int * p[4]
指针也可以多重的,这主要和多维数组有联系,这需要理解指针的跨步,即一步平移多少个字节。以二维数组为例,说明这个问题,这也是通过指针引用数组的例子。
#include<stdio.h>
int main()
{
int a[2][3]={1,2,3,4,5,6};
int *b,i,j;
b=*a;//指针指向数组起始地址
//多重指针每次移动是跨行的,
for(i=0;i<2;i++)
printf("%d\t",*(*(a+i)));
//要想输出数组的每个数据要采用以下的方法
printf("\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d\t",*(*(a+i)+j));
}
}
getch();
return 0;
}
通过指针引用字符串。
#include<stdio.h>
int main()
{
int i;
char a[]="qwertyuiop";
char *b;
b=a;
for(i=0;a[i]!='\0';i++,b++)
printf("%c",*b);
getch();
return 0;
}
- c语言解析系列(5)指针
- C语言指针系列
- C语言指针系列
- 函数指针解析(C语言)
- 函数指针解析(C语言)
- c语言解析系列(4)函数
- C语言系列--指针1
- c语言-指针 const解析
- c语言解析系列(7)文件和动态内存分配和指向它的指针变量
- 一句话C系列:C语言指针内幕
- C语言学习笔记系列(3)指针
- C语言系列(四)指针概念的理解
- C语言系列(四)指针概念的理解
- C语言精要总结-指针系列(一)
- IOS开发系列--C语言之指针
- IOS开发系列--C语言之指针
- iOS开发系列--C语言之指针
- IOS开发系列--C语言之指针
- c语言解析系列(2)选择语句
- TCL语言相关
- c语言解析系列(3)循环和数组
- c语言解析系列(4)函数
- eclipse中的各种调试
- c语言解析系列(5)指针
- java_abstract factory
- Android 相对布局:RelativeLayout
- c语言解析系列(6)用户建立自己的数据类型
- Android 创建其他应用的上下文对象
- VS-Addin
- c语言解析系列(7)文件和动态内存分配和指向它的指针变量
- SQL 查找每年评分最低或最低的项目 并排序
- EasyUI的license问题