c语言指针知识用法大全,c语言 指针的指针 用法详解

http://www.itjxue.com  2023-01-04 18:36  来源:未知  点击次数: 

C语言中指针有哪些用处。或者可以用来做什么,请简单举例说明

指针可以快速访问数组中的元素,想访问下一个,就自加1,上一个就自减1,下一行就自加一行,上一行就自减一行,特别适用快速逐点处理图像,

如:unsigned char img[1024][768],*p; int i,j; p=(unsigned char *)img; for ( i=0;i1024;i++) for ( j=0;j768;j++,p++ ) *p+=16;

指针还可以用不同类型来访问同一组数据:

unsigned char a[4],*p; unsigned int *q; p=a; *p=0x12; p++; *p=0x34; p++; *p=0x56; p++; *p=0x78; q=(unsigned int *)a; printf("%xH",*q);会输出十六进制数78563412H

另外指针可以用于给函数传递数组起始地址、结构地址、类地址、结构数组地址,这些复杂数据组合,函数返回值也是这样,另外利用指针还能不从数组起始地址开始传入数组。比如:char str[]; scanf("%s",str); printf("%s\n",str+1);

哪位高手能帮我解释一下C语言中指针的用的用法

指向函数指针就是定义一个指针,指向函数的头地址,等到系统需要用的时候,可以通过指针调用它。

比如

先定义函数

int

max(int

a,int

b){return

ab?a:b;}

再定义指向这个函数的指针

int

(*P)(int

a,int

b);p=max;

注意int

*p(int

a,int

b)

是指返回指针类型的函数,不是指针不能用它来指向任何东西。为啥不同涉及到优先级的问题~

返回指针值的函数,就是这个函数最后返回的值是指针类型的。平常我们定义函数

int

max(int

a,int

b){return

ab?a:b;}这里返回了int型的数据

若你这样定义

int*

max(int

*a,int

*b){return

*a*b?a:b;}就是返回了其中一个指向较大数值的指针,前面的(int*)用来说明函数返回值的类型。

指针数组

,从他的后缀就知道

他首先是数组,然后是存储指针的

比如

int*

a[10];定义了有十个元素的数组,数组元素类型是int*

即是指针

指向指针的指针

就是二级指针,指向一级指针的指针。比如

int

a=1;int*

p=a;(这里定义了一级指针p,指向a)int**

pp=p;

这是二级指针,指向p指针。也就是指向指针的指针。当然还有多级指针,不过不常用~

c语言指针用法?

1、使用场景

使用指针时,必须将它指向一个变量的地址或者为它分配空间方能使用,如下所示:

#includestdio.h

#include stdlib.h

int main(int argc, char const *argv[])

{

int a[5]={0,1,2,3,4};

int *b,*d;

int c=2;

int *e=a; //e指向a数组首地址

//*b=2;? ?无法直接初始化

//printf("%d\n", *b);

e=e+2;? //移动两个地址单元

d=c;? //d指向c的地址来表示值

c=4;? ?//修改原c变量的值,d指针的值会发生改变

b=(int *)malloc(sizeof(int));//为b分配一个int型空间来直接存储值

*b=2;//分配空间后可以直接赋值了

printf("this is e,b,c,d :%d %d %d %d\n",*e,*b,c,*d);

2、类型说明

(1)int *a :表示一个指向int型变量的指针,指向的是变量的地址单元

(2)char *b:表示一个指向char变量的指针

*a表示的是这个指针指向地址的值,a为此指针本身的地址,这点要明确,一般用*(a+1)、*(a+2)来表示值,如:

int nums[5]={0,1,2,3,4};

int *a=nums;

printf("%d %d %p\n",*a,*(a+1),a);

扩展资料:

指针的运算

指针指向变量地址,若原变量的内容发生了变化,它本身也会发生变化,指针之间的运算一般为值运算和地址运算

(1)值运算:直接通过*运算方式,像a+*(a+1),结果为第一个元素与第二个元素相加。

int nums[5]={0,1,2,3,4};

int *a=nums;

(2)地址运算:通过a+i的方式.指针会指向a的下i个地址。

int nums[5]={0,1,2,3,4};

int *a=nums;

a=a+2;

printf("%d\n",*a);

结果输出2。

参考资料来源 :指针-百度百科

C语言指针的用法是什么?

指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。

利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。

学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。

同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要作到这些,指针也是不难掌握的。

(责任编辑:IT教学网)

更多

推荐金山WPS文章