在C语言中能否直接给指针指向的数据赋值为什么

 时间:2024-11-02 10:02:00

可以,但int *p挢旗扦渌;*p=7;这样不行。

因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。

这样才可以:

int a,*p=&a;*p=7;

实际上就是使a等于了7。

在C语言中能否直接给指针指向的数据赋值为什么

扩展资料:

注意事项

也可以使用赋值运算符为指针变量赋值,但要保证两个指针变量的类型相同。

假设有如下变量定义:

int i,j,*p,*q;p=&i;q=&j;

这两句将变量i和j的地址分别赋值给指针变量p和q;

执行了q=p后,执行该条语句,指针变量p和q都指向了同一个变量i,因此指针变量p和q中存放的都是变量i的地址&i。变量i此时并没有初始化,只为其分配了内存单元。

注意理解:q=p;和*q=*p

前者为指针变量q赋值,即将指针变量p中存放的某个变量的地址赋值给q。显然,赋值后,q和p就指向了同一个变量。

后者将p指向变量的赋值给q指向的变量。

例子:

p=&i;

q=&j;

i=2;

j=3;

  • C语言中的strcmp函数怎样使用?
  • C语言的putchar如何使用?
  • getchar的用法
  • C语言如何将十进制数转换为二进制?
  • c语言如何生成随机数
  • 热门搜索
    qq被盗号了怎么办 净残值怎么算 下巴长痘是怎么回事 近视了应该怎么办 妹妹用韩语怎么说 呼吸困难是怎么回事 宾格手表怎么样 怎么用手机控制电脑 邮箱怎么登陆 离职原因怎么说