若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。 A. i=...

发布网友 发布时间: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是不同的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com