C语言指针什么时候加星号什么时候不加

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:30:19
怎么时加时不加
比如我看见这样的语句:
⑴printf("%d",*p)
⑵int *p
⑶p=a
⑷for(i=0;i<10;i++,p++)
指针p的*时加时不加,我ft

开始定义的时候加*,比如:int *p;/*这里加*是表示p是一个int型的指针*/
指向值的时候加*,比如:int *p,a;*p=a;
指向地址的时候不加*,比如:int *p,a[10];p=a;或*p=a[0];
也就是一开始定义的时候的*是表明p是指针,但是到后面用的时候,p表示地址,*p表示p指向的"地址的值".ok???

1、声明及定义一个指针时,需要用*表示标识符是一个指针。比如

int *p;

定义一个指针,p是int *类型,这里的*主要说明变量是指针类型。


2、作为间接访问运算符

int a = 2;
int *p = &a;
printf("%d\n", p, *p);

以上面的例子来说:

p:是指针,是一个地址,它是int *类型。

*p:是指针所指内存中存储的数据,是一个int类型。

定义的时候加,如int *pt;定义了一个整型指针pt
使用指针指向的地址内的数据的时候加,如char arr="abc",*ptc=arr;*ptc='d';就把arr[0]给改了
给指针赋值的时候不加,当然像上面定义的时候直接赋值是要加的,其他如int a=32,*pt;pt=&a;就是让pt指向a
其他都不用吧

说的具体点,你这样子我没法说