`
ackerman
  • 浏览: 72766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言基础(三)_指针

阅读更多

1.指针变量的初始化

int a,*pa;
pa=&a;
或者
int a,*pa=&a;

应注意,后者初始化中的“*pa=&a”不是一个运算表达式,而是一个说明语句。在这里是将变量a的地址值付给指针变量pa,而不是*pa。

2.指针型函数和指向函数的指针

(1)指针型函数:函数的返回值是指针类型。
(2)简称函数指针,其内容是函数的入口地址。定义如下:
    数据类型 (*函数指针名)();
函数指针的主要作用是作为参数在函数间传递函数。

3.指针数组和二维数组的行指针

(1)指针数组

int *pa[2];

指针数组常用来处理多维数组。
(2)二维数组行指针

int a[3][4];
int (*pa)[4];
pa=a;

它表示pa是一个指针变量,它指向包含4个元素的一维数组。*(pa+i)=a[i]表示的是一维数组a[i]0号元素的首地址(二维数组中并不存在a[i]元素)。而*(*(pa+i)+j)表示的是i行j列的元素的值。

4.main函数的参数

main(int argc,char *argv[])

main函数的参数是从操作系统的命令行获得的。第一参数表示的是参数的个数,第二个参数为字符串指针数组,其各元素是命令行中个字符串的首地址。下面的示例打印输入的参数:

#include<stdio.h>

main(int argc,char *argv[])
{
  while(argc-->1) printf("%s\n",*++argv); 
} 

 5.指针示例

#include<stdio.h>

int add(int x,int y)
{
	return x+y;
}
void pfunc(int x,int y,int (*pf)(int x,int y))
{
	printf("函数指针返回结果:%d\n",(*pf)(x,y));
}

void main()
{
	/*指针数组示例*/
	int a[2][3],*pa[2];
	/*pa[0]=a[0];
	pa[1]=a[1];*/

	/*二维数组行指针*/
	int b[3][4];
	int (*pb)[4];
	/*pb=b;*/

	/*二级指针示例*/
	char *pstr[]={"one","two","three","four","five"};
	char **p;
	p=pstr;
	printf("二级指针返回结果:%s\n",*(p+1));getch();

	/*函数指针示例*/
	pfunc(3,5,add);

}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics