double r=99;
*p为定义好的指针。
*p=&r;
*p=r;
p=r;
p=&r;
这四条语句各自能否给指针正确赋值或者赋予地址, 如果可以,各自有什么区别和意义
对了,顺便再给我解答下
char ch[3][4]={"123","456"."78"};
这个数组
它是三行四列的
它是
这种
123 0 0 0
456 0 0 0
78 0 0 0
还是
1 2 3 0
4 5 6 0
7 8 0 0
这种形式的
C语言中,给指针赋值或者赋予地址的几个写法的辨析
答案:2 悬赏:30 手机版
解决时间 2021-02-08 20:56
- 提问者网友:我一贱你就笑
- 2021-02-08 01:20
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-02-08 02:37
*p = &r; // *p是double 类型,&r 是double *类型,二者不匹配,错的
*p = r; // *p是double 类型,r 是double 类型,二者匹配,对的
p = r; // p是double *类型,r 是double 类型,二者不匹配,错的
p = &r; // p是double *类型,&r 是double *类型,二者匹配,对的1 2 3 '\0'
4 5 6 '\0'
7 8 '\0'
*p = r; // *p是double 类型,r 是double 类型,二者匹配,对的
p = r; // p是double *类型,r 是double 类型,二者不匹配,错的
p = &r; // p是double *类型,&r 是double *类型,二者匹配,对的1 2 3 '\0'
4 5 6 '\0'
7 8 '\0'
全部回答
- 1楼网友:独行浪子会拥风
- 2021-02-08 04:09
理解多级指针的概念就可以了,这很简单,不值得讨论。不要把c语言本身设计的初衷本末倒置了。 下面是一个二级指针的例子: int a[7] = {0}; int* pa = a;//指向a[0] int** p_pa = &pa;//指向pa *p_pa += 2;//*p_pa等于pa等于&a[0], 现在pa指向a[2], **p_pa = 10;//将p_pa指向的指针pa--它指向的变量a[2]=10 printf("a[%u] = %d", (pa - a), *(a+2));//现在a[2]等于10
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯