
正文
c语言结构体指针用法,c语言结构体指针成员
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言的结构体及指针
指针,其实就是一个存放地址的变量,指针可以指向变量,数组,结构体等数据所在的内存单元。指针就是用来通过地址去找数据的,只要你把该数据的地址给指针,那么当你用到指向这个数据的指针时就等于在使用该数据。
指针结构,就是内存给出一个结构体的首地址,其他操作与普通指针一样(指针本身是动态的)。二级指针,可以理解成结构体子变量指针,通常用来在链表中指向另一个结构体的地址(脱离链表的二级指针实际上也没什么用,所以可以是这样说,它就是指向下个结构地址(成为结点)的指针)。
struct st {int x; int *y;}*pt;//struct st * 的变量pt。int *y是int类型的指针y。int a[]={1,2},b[]={4};//两个数组。struct st c[2]={10,a,20,b};初始化了两个结构体c[0]={10,a}和c[1]={20,b}。
struct stu { char name[20];long number;float score[4];} ;再定义指向结构体类型变量的指针变量:struct stu *p1, *p2 ;定义指针变量p p 2,分别指向结构体类型变量。
相关问答
Q1: C语言结构体指针成员所指向的变量如何访问?
第二种写法:a-p=-是一个新的运算符,习惯称它为“箭头”,有了它,可以通过结构体指针直接取得结构体成员;这也是-在C语言中的唯一用途。
首先定义一个包含所有可能情况的结构体:struct test { int a;int *p;};struct test t1, *t2;1 结构体/指针成员/所指向的变量。结构体中有指针成员,然后要访问这个结构体成员指向的变量值。
因为int是一个值类型的,所以不能直接赋值给p(p是int指针类型)。因此二楼加括号是对的。通过取p的地址转化成对应的指针,然后直接把b赋值给它。另外一种方法:a-p=//把b的地址赋值给a中的p指针。
这主要得看a是什么类型,如果a是结构体变量(比如OS_MEM_DATA a),那么就是a.b。如果是结构体指针变量(如OS_MEM_DATA *a),那么就是a-b。a-b等价于(*a).b。
箭头在C语言中被称为“结构体指针运算符”,它是用来访问结构体指针所指向的结构体中的成员变量的。
Q2: 指针的&是什么作用?
指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32位长。指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。
第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。当然小伙伴们也可以通过数据的复制达到相同的效果,但是这样往往效率不太好。因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。
在信息工程中,指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象语言如Java一般避免用指针,而是引用。基本概念 指针一般指向一个函数或一个变量。
指针的优点 是标识一块内存。电脑内存上的每一个字节都具有一个编号,称为地址(可以简单理解为指针),任何读写内存的指令都必须携带地址信息,否则电脑不知道读写那块内存。
表达式的意思:*p=a的意思:将a的值赋给p指针指向的地址的值;p=&a的意思是:将a的地址赋给指针p;*p=&a的用法错误。区别在于:p=&a就是用a的地址对p赋值,a是一个变量,&a就是存储这个变量的内存地址,指针存储的就是一个地址,*p就是这一地址中的内容。
Q3: c语言中指针怎么使用?
从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。
在c语言中.指针被用来表示内存单元的地址,如果把这个地址用一个变量来保存,则 这种变量就称为指针变量。指针变量也分别有不同的类型,用来保存不同类型变量的地址。严格地说.指针与指针变量是不同的,为了叙述方便,常常把指针变量就称为指针。
//指针所指向的的类型是int*()[4]在指针的算术运算中,指针所指向的类型有很大的作用。指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。当你对C越来越熟悉时,你会发现,把与指针搅和在一起的类型这个概念分成指针的类型和指针所指向的类型两个概念,是精通指针的关键点之一。
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。
P:是变量指针。P:呵呵,我没见过。所谓指针可以简单的理解为是一个间接访问的地址。如有一个变量a,如果要访问则可以直接写a时行访问,用指针的话则P=&a,以后再写下面的程序时P就等于变量a,&是变量所在的地址。P是指向指针的指针。如有一指针*S,用**P做为指针变量。
元素a[i][j]相应的指针表示为:( p+i*N+j) ,相应的如果用p1来表示,则为*(*(p1+i)+j)。同样,a[i][j]也可使用指针下标法表示,如p[i*N+j]。
关于c语言结构体指针用法和c语言结构体指针成员的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







