C语言指针写法

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:07:55
(1)float x;
float *p=&x;这个是正确的书写
请问float p=&x; 这个是错误的书写,还是表达的其他意思呢?

(2)float *p,x;
p=&x;
*p=100; 这个代表把整数100存放在变量x中。

但如果float *p,x;
float *p=1024; 这么写是格式错了,还是表达其他意思?
(29)设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是(D)
A)float *p=1024;
B)int *p=(float x);

C)float p=&x;
D)float *P=&x;

这道题为什么选D?

问题1那样写是错误的。问题2那样写也是错误的,数据类型不匹配。
补充问题29是指针初始化的定义方式阿,p是指针类型,初始化时赋值就需要为选项D形式,若在初始化时未赋值,则可以写成:
float *p;
int x=1;
p=&x;
形式。

float * P 说明P是浮点型指针,&x指的是float型变量x的指针,将一个指针赋予一个指针变量,并且都是浮点型,所以定义正确。
错误答案中:
A.1024不是浮点型的数;B.强制转换应该是(float)x,何况x本身就是float型,这个写法蛋疼;C.把float型x的指针赋给一个float数P所以错误

(1)
貌似可以,&x是一个地址的值,是个4字节的16进制数据,我觉得是可以赋值的
(2)
p指向1024这个地址
内存中地址一般0x 数据
比如0 这个地址就是NULL,但是不允许赋值,尽管可以,但是不规范

类型要匹配