c语言中int i,*p=&i;表示什么意思,为什么和int i,*p;p=&i;语句功能等价

如题所述

第一句是定义并赋值
第二句是先定义后赋值
所以他们等价
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-07-03
固定写法表示p指向i的地址

c语言中int i,*p=&i;表示什么意思,为什么和int i,*p;p=&i;语句功能等 ...
第一句是定义并赋值 第二句是先定义后赋值 所以他们等价

C语言中学指针时*和&是相互补充的,为什么啊?
p=&i; 意思就是p 指向 i 因为指针是一段4字节大小的空间,里面存放着指向的目标的地址 &的意思就是取地址 也就是取i的地址存放到p里 在定义一个 int j j=*p 意思就是 j=i *p的意思是p 解引用的意思就是引用指针指向的内容 这里也就是i 这么说明白么?

C语言为什么int *p=&i,i;不对,int i,*p=&i;就对了呢
系统只会在该语句之前寻找i,第一句话等价于:int *p=i;int i;表明你的i定义在了p以后,系统会报错说你没有定义过i这个变量。

c语言,p指向i,则*p = i,是指内容一样?还是完全等价?*p和i的地址相同吗...
p 是一个指针,i 是一个变量;两者不能说是内容一样或是完全等价。当指针p 指向 i 的地址,就像是变量i 的地址有了个名字,就像是每个人都有不同的名字一样,但是身份证编号是唯一的(就像是变量i 的地址)。比如:include<stdio.h> int main(){ int i = 10;int * p = &i;int * q ...

若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是
int *p=&i已经定义了指针p指向了变量i,也就是p的值是变量i的地址,即*p=i。i=*p意思是将指针p所指向的值赋予给i,*p=*&j是指将j的值赋予给指针p所指向的值,而指针p指向了变量i,因为就实现将j的值赋予给i; i=&j是指将变量j的地址赋予给i;*p等于变量i了,因此 i=**p就已经不能...

c语言指针
即int *p = &i),p存储在地址0x000000F4上。下面:p 表示p所指整型的值,即i的值,10 &p表示整型指针p的存储地址,即0x000000F4 &p表示存储在0x000000F4上的整型指针变量的值,即指针p的值,即0x000000F0(变量i的地址)所以你的答案应该是:p与*&p一样,而*p与i一样 ...

关于c 指针的问题 int *p; *p,&p都什么意思,怎么用
指针变量与普通变量相似,使用前须定义。如p指向整型变量a,可通过两种方法赋值:(1)初始化:int a; int *p=&a;(2)赋值语句:int a; int *p; p=&a;。不能将数字赋予指针变量,否则错误。例如:int *p; p=1000;是非法赋值。假设int i=200, x;int *ip;定义了整型变量i、x以及指向整型...

& C语言取址符怎么读?
第一个printf 是将i的值输出,即为10 第二个printf是将i的地址输出,此地址在你申明这个变量的时候 系统自动分配 p指向i的地址 。在 申明语句中,*只表示你申明的变量是指针型,不是指向运算符(不同的地方含义不同)此语句等价于 int p;p=&i;若在赋值语句中,那么*就表示指向运算。

这个C程序*(p+i)=i; 什么意思,直接写*p=i;结果不是一样的吗?为什么要那...
(p+i)=i;是指将i(i是变化的),赋给以p为首址的控制,假设p的地址为0x20,则第一个数为0(i从0开始,到9),0x21地址的值为1,以后的地址类似。如果仅是*p=i;则只会在0x20(还是假设p的首址为0x20),变化值(即0x20的值依次为0,1,2...),0x21及后续地址不会被赋值。

若有说明int i,j=2,*p=&i;则能完成i=j赋值功能的语句是___。A.i=*p...
【答案】:B 解析:指针是一种用来存放变量地址的特殊变量。本题中指针变量p用于存放整型变量i的地址,改变*p的值即为改变i的值。又因为“&”和“*”两个运算符的优先级别相同,按自右而左的方向结合,所以*&j先进行&j运算,得j的地址,再进行运算,取所得地址里面的值,故*&j与j等价。

相似回答