摘要:
指针函数:返回指针的函数,即函数返回一个地址。例如:int * a(int x,int y);由于()的优先级比*高,因此a先与()结合,a(int x,int y)显然是一个函数,函数前面带一个int * 表示返回值为int * 类型,也就是指向整型的地址。 输入一个学生编号,打印一个学生得成绩: 阅读全文
摘要:
指针数组:一个数组,若其元素均为指针类型的数据,称为指针数组,指针数组存放的是指针类型的数据,也就是指针数组的每个元素都存放一个地址。下面定义一个指针数组: int * p[4];//[]的优先级是比*高的,所以p先和[]结合,p[4]明显是一个数组,表示p数组有四个元素,int *表示每一个数组元 阅读全文
摘要:
定义函数地址:如果在程序中定义了一个函数,那么在编译的时候,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(也叫入口地址)称为这个函数的地址。 和数组一样,数组名代表地址,而函数名表示函数地址。 函数的调用:可以通过函数名直接调用,也可以通过函数指针间接调用。 函数指针定义:函数返回值类 阅读全文
摘要:
定义一个数组指针,指向二维数组: int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int (*p)[4];//定义二维指针数组 p=a;//指向二维数组,数组指针等同于二维数组名 #include<stdio.h> int main() { int a 阅读全文
摘要:
二维数组a的有关指针: 表示形式 含义 地址 a 二维数组名,指向一维数组a[0],即0行首地址 2000 a[0] ,*(a+0),*a 0行0列元素地址 2000 a+1,&a[1] 1行首地址 2016 a[1],*(a+1) 1行0列元素a[1][0]的地址 2016 a[1]+2,*(a+ 阅读全文
摘要:
二维数组的每个元素都是一个一维数组,例如int arr[2][3]={{1,2,3},{4,5,6}}; 下面通过几个例子来对二维数组进行深入了解:二维数组可以看作是一个父数组,他的每个元素都是一个一维的子数组。 (1)数组名表示数组首元素的地址,那么arr表示的是谁的地址?arr表示的是ar首元素 阅读全文
摘要:
在C语言中,数组名代表数组中首元素的地址,所以,下面两句获取数组的首地址是等价的: #include<stdio.h> int main() { int a[5]={1,2,3,4,5}; int *p=&a[0]; int *p2=a; printf("地址p=%p\n",p); printf(" 阅读全文
摘要:
在学习单片机的时候,经常需要让一个指针指向固定的区域,这时候应该怎么操作? #include<stdio.h> int main() { int *p; int a =10; p=&a; printf("改变前变量a的地址=%p\n",&a); p=(int *)0x000000000061FE33 阅读全文
摘要:
指针是存放变量的地址,那为什么要区分类型?不能所有类型的变量都用一个类型吗?下面用一个例子来说明这个问题。 #include<stdio.h> int main() { int a=0x1234; int *p=&a; char *c=&a; printf("p指向的变量a的地址=%p\n",p); 阅读全文
摘要:
指针就是地址,变量的值可以通过两种方式访问,一个是通过变量名,一个是通过地址访问。 从而引出一个问题,即什么是指针变量?整型(字符)变量就是存放整形(字符)的变量,指针变量就是存放指针的变量,也就是存放地址(16位表示)的变量。 指针变量本身也是有一个地址的。 例子: #include<stdio. 阅读全文