C++ 给数组指针赋值的一些问题?
4个回答
展开全部
这里提一个建议:
C++ Primer中提到过,定义数组的名字看成一个指针,也就是说我现在这样定义一个数组
int ia[5];
当我单独使用ia的时候,一般情况下它就是一个指针。(只有使用decltype的时候是数组类型)。ia默认指向第一个元素,使用下标是可以递增元素。例如:
auto p = ia;
p的类型为int*,指向ia的第一个元素,也就是ia[0]
p[2]获得第*(p+2)个元素
当然也可以这样写:
int *p2 = ia;
p2[2] = 20;
在你的程序中,c是一个指针,指向一个存放着指针的数组,所以解引用*c是获得第一个元素,和c[0]等价,也就是获得的是数组中的第一个指针,然后再次解引用,才是获得数组指针指向的地址。
C++ Primer中提到过,定义数组的名字看成一个指针,也就是说我现在这样定义一个数组
int ia[5];
当我单独使用ia的时候,一般情况下它就是一个指针。(只有使用decltype的时候是数组类型)。ia默认指向第一个元素,使用下标是可以递增元素。例如:
auto p = ia;
p的类型为int*,指向ia的第一个元素,也就是ia[0]
p[2]获得第*(p+2)个元素
当然也可以这样写:
int *p2 = ia;
p2[2] = 20;
在你的程序中,c是一个指针,指向一个存放着指针的数组,所以解引用*c是获得第一个元素,和c[0]等价,也就是获得的是数组中的第一个指针,然后再次解引用,才是获得数组指针指向的地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*c是指针,指针可以是 int ,char ,unsigned int 等等。
而int 等是数据类型。
既然c是指针 那肯定得 这样表述(整形指针 字符型指针 ... 才对啊) 你理解为int ;那就表示c 成一个指针直接变成了普通的整形 性质表了
而int 等是数据类型。
既然c是指针 那肯定得 这样表述(整形指针 字符型指针 ... 才对啊) 你理解为int ;那就表示c 成一个指针直接变成了普通的整形 性质表了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据int (*c)[20]=&b;可知c的值就是&b,那*c不就是*&b即b吗?
而b是int型一维数组,b的类型当然是int*。
也就是说c保存的是数组b的地址,那c指向的值(*c)自然就是数组b了,而b的类型是int*。
而b是int型一维数组,b的类型当然是int*。
也就是说c保存的是数组b的地址,那c指向的值(*c)自然就是数组b了,而b的类型是int*。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int (*c)[20] = &b;
*c得到什么呢,得到的是int [20],而不是int。int [20]相当于一个地址值,还得再来一次*,才能取到元素值
*c得到什么呢,得到的是int [20],而不是int。int [20]相当于一个地址值,还得再来一次*,才能取到元素值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询