发布网友 发布时间:2024-10-22 03:40
共5个回答
热心网友 时间:9分钟前
*p=*&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就已经不能满足实现i=j。
扩展资料:
特有特点
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。
参考资料:
百度百科-c语言
热心网友 时间:4分钟前
选B
你的第一个*P 里面的 星 不代表任何意思 知识 指针定义必须要写
而选项中的 星 是取值的意思 & 是 取地址
i和j都是值
A. i=*P 因为*p=i 左边等价于i ( 最后等价于 i=i)
B *P=*&j 因为*p=i 左边等价于i *&j等价于j ( 最后等价于 i=j)
C i=&j i是值 &j是地址 是没法等于的 如果非要等于 最后i会输出类似 0x*******
D i=**P 第一个 星 代表 乘法 第二个 星 代表 取值 (最后等价于 i=i*i)
热心网友 时间:1分钟前
int *p=&i;
//这句是定义赋值一起写,所以初学者会有疑问
实在不明白拆开来就明了了
int *p;定义一个指针变量,笼统的讲指针就是地址,指针变量就是用存地址的
p=&i;//把地址赋值给p;
明白了吧
所以答案选B
热心网友 时间:7分钟前
解:选B。
解析:题中说,定义整型变量i和j,并且初始化了把7赋值给变量j。 *p=&i是说使整形指针变量p指向了变量i的地址(即变量p中存储了变量i的地址)。i=j是说给7的值赋给变量i,即i的值为7.与之等价,那就是同样是赋值表达式,B答案 *p=*&j;中&j是取地址,*&j表示取地址中的值,即为7,赋给变量p里的值(即是i)。
热心网友 时间:8分钟前
各位解答思路是对的.但是必须指出他们回答中的问题.
1. 答案B是*p=*&j *&j就是j 答案B其实就是 *p=j=7.相信你能看懂.
2.最关键的是题目中的初始化:int i,j=7, *p=&i;, 其实是int *p=&i;等价于*p=i;或者p=&i;
注意 *p=&i与int *p=&i是不同的