c语言指针问题解答?

1.p=&a;是取地址,那如何在取地址之后通过p或是*p改变a里面的值呢?可以通过p或者*p改变a里面的值吗?2.int(*p)[]int*p();和int(*p)();... 1.p=&a;是取地址,那如何在取地址之后通过p或是*p改变a里面的值呢?可以通过p或者*p改变a里面的值吗?
2.int (*p)[ ] int *p();和int (*p)(); const int *p和int *const p都是什么意思呢?
展开
 我来答
千洒大终八跳29
2019-12-02
知道答主
回答量:34
采纳率:33%
帮助的人:5.1万
展开全部
一、P指向a存值的地址,如p指向地址的内存的值为0001,则*p=0001(为1),这时修改*p=0010,则a的值相应的被修改为2。

二、我们只能通过*p修改a的值,p是一个地址指针,更改p后 p指向了另一块内存,a的值不会被更改。

三、
int *p[] p是一个数组,数组内每个元素都是int*类型,也就是指向整型数据的指针类型,

int *p()是int (*p)()函数调用后的返回值指针

int (*p)()是一个函数的函数指针,即指向函数的地址,在调用导出函数时,经常用此方法调用函数

const int *p是指针指向的值无法改变,但是指针本身可以改变,可以重新指向一块内存

int *const p是指针不能改变,但它指向的值是可以改变的

其实还有 const还有其它用法,我们可以来修饰函数,同时修饰地址和值,如:const int * const p,这样想胡乱改就改不掉了
追问

一.

       1.是我的做法不对吗,输出的结果是  8   能把过程截成图片发一下吗

       2.这个0001是按照二进制规律的吗?

二.   

       1.int (*p)()是一个函数的“函数指针”     指针指向的值无法改变,但是“指针本身可以改变”,可以重新指向一块内存     指针不能改变,但它指向的值是可以改变的 这三句话引号部分能不能再详细解释一下。。

追答
  1. 二/十进制的转换你可以百度一下,

  2. 函数指针就是这个函数在内存的地址

  3. 指针就是内存地址,指针可以变,就是他能指向另一块内存,比如AB两盒子,本来指向A,现在改成指向B;常指针指向的内存地址不能变,比如AB两个盒子,p永远只能指向A,不能认为的把它改成B,值即为A盒子内装的东西,装什么由你定,你可以装水,也可以装米

microroom
科技发烧友

2019-12-02 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1645万
展开全部
1.
能通过指针p改变a里面的值,前提是a不是常量且指针p不是指向常量的指针(只读型指针)。举例:
a、
int a=1,*p=&a;
//此时a等于100了
*p=100;
b、
int a=1;
const int *p=&a;
//不能通过p改变a的值,因为p是只读型指针(只读型指针可以指向变量,但不能通过指针修改它指向的变量的值,就好像在它看来,它好像指向的是一个常量)
//*p=100;
c、
const int a=1,*p=&a;
//同样不能,因为a是常量且p是只读型指针
//*p=100;
2.
int (*p)[n]是指向数组的指针(数组指针),p指向的数组需有n个int型元素,如:
int a[2],b[2][2],(*p)[2];
则p=&a;p=b;p=b+1;都行。
int *p();是函数声明。函数名是p,不需要参数,需返回一个int类型的指针。
int (*p)();是指向函数的指针(函数指针),p可以指向的函数需满足无参且返回类型为int,如:
int f()
{
}
int (*p)()=f;可以。
const int *p;是将p定义为指向常量的指针(只读型指针),这样就不能通过指针p改变它指向的变量的值,就好像它指向的是一个常量,前面已有这样的例子了。

int * const p是将指针p自己定义为常量,即它永远指向同一个变量或常量,不能改变p自己的值(即除了初始化时,不能用=为它赋值),因此必须在定义时初始化p,如:
int a=1,c;
const int b=2,d=3;
则int * const p=&a;int * const p=&b;都行,而p=&c;p=&d;都不行。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式