在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语言如何生成随机数
  • 热门搜索
    土楼旅游 台湾有哪些旅游胜地 黄山旅游住宿 三亚自助旅游 普吉岛旅游价格 泉州旅游景点大全 重庆有什么旅游景点 七台河旅游 永春牛姆林生态旅游区 许昌旅游景点大全