中易网

C++中指针里面的*怎么用

答案:2  悬赏:60  
解决时间 2021-03-10 12:18
C++中指针里面的*怎么用
最佳答案
在声明语句中的“*”是与前面的类型符号配合的,而不是与后面的变量名配合的,如int *p;是声明了一个int *型指针变量p,而不是一个int型变量*p;指针变量是p,所以后面赋值时不得再加"*"。
指针p并没有赋值,是野指针,不能作右值。
运算表达式中单独的“*”基本就两种情况:一是在指针前,它是取指针所指对象的值;二是在两个变量间,它是乘号。*p2 = *p1 * *p2;的意思是*p2 = (*p1) * (*p2);,它就是把p1指向的变量的值即i的值乘以p2指向的变量的值即j的值,将其结果赋给p2指向的变量即j。所以这里p1、p2前面的“*”是取值操作符,显然和声明语句中的"*"不是一回事。
mat = new int *[nMaxRow];在[nMaxRow]前的*的意义已在第一问中回答了,它是与int配合使用的,意思是创建一个元素个数为nMaxRow的存放int *型指针的动态数组,将将第一个元素的地址赋给指针变量mat。


追问看懂了一些,但还是有点小问题
2.p不是获得了ival的地址了吗?那p不是应该赋值为1024吗?
4.mat = new int *[nMaxRow];和matRow = new int[nMaxRow];有什么区别?

麻烦再回答一下啊~十分感谢!追答2 是我说错了,当时怎么弄的我也想不起来了。问题在于q还没有赋值,它的第下级指针*q就是野指针。要先为q赋值,才会有*q。
4.mat = new int *[nMaxRow];是创建一个长度为nMaxRow的数组,这个数组的每一个元素都是int *型指针,并把第一个元素的地址赋给mat指针(显然这里mat是二级指针)。matRow = new int[nMaxRow];是创建一个长度为nMaxRow的数组,这个数组的每一个元素都是int型变量,并把第一个元素的地址赋给指针matRow,显然这里matRow是指向int变量的一级指针。
全部回答
我暂时保留我的看法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农村信用社得工作人员帮下
李云龙为何会接手独立团
新思力教育培训培训学校在什么地方啊,我要过
英雄联盟什么角色血最多 能有多少怎么出装?
创维29d98ht图像变宽
本人想去新西兰旅游,特别想去那个皇后镇看星
妙生活徐虹北路店怎么去啊,有知道地址的么
北京朝阳区在哪里可以捐赠衣服?
你好,家里空调制冷剂一般什么时候才要加?怎
手机号不用了直接让它欠费后不交可以吗求大神
普通话考试证能补办吗?
脑子总感觉有问题,神经线好像很迟钝,总感觉
卖床垫顾客说没听说过这个品牌要怎么回答
雏鸡前期死亡高,为什么?
一心齿科地址在什么地方,想过去办事
推荐资讯
师大社区在什么地方啊,我要过去处理事情
求电影阿甘正传百度云资源
鲲鹏it培训坑吗?我想去他们那里学习不知道怎
我想买个qq号,做文字控,给别人打广告赚钱可
东方红农庄怎么去啊,有知道地址的么
CATIA突然不能用了,求高手!
中营村怎么去啊,有知道地址的么
平江县岳阳平江县万荣菜业有限公司我想知道这
1米2的水族箱 我用尺子量完分别知道长是46宽
学室内设计还可以做什么
农民地里种什么国家赔款多
我想用无线wifi上网,那个上边已经显示有连接
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?