什么';这是*p++;,*++;p、 &x2B+*C语言指针中的p?
我正在学习c编程语言的基本知识。现在我对指针部分感到困惑。 书中有一个原始问题: 数组a有一些值,指针p现在位于[1]:什么';这是*p++;,*++;p、 &x2B+*C语言指针中的p?,c,pointers,C,Pointers,我正在学习c编程语言的基本知识。现在我对指针部分感到困惑。 书中有一个原始问题: 数组a有一些值,指针p现在位于[1]: a[0]:10 a[1]:20 <---p a[2]:30 a[3]:40 a[4]:50 a[0]:10 a[1]:20 执行*p++后*p的值是多少 *p++首先取消对指针p的引用,然后递增指针p。所以下一次对*p的调用将返回30 *++p的值是多少 考虑以下示例: int array[] = {10, 20, 30}; int * p = array; in
a[0]:10
a[1]:20 <---p
a[2]:30
a[3]:40
a[4]:50
a[0]:10
a[1]:20
执行*p++后*p的值是多少
*p++
首先取消对指针p的引用,然后递增指针p。所以下一次对*p的调用将返回30
*++p的值是多少
考虑以下示例:
int array[] = {10, 20, 30};
int * p = array;
int array[] = {10, 20, 30};
int * p = array;
在这种情况下,*++p将打印20。首先,指针将递增,这意味着它将开始指向第二个元素。然后它将被取消引用
++*p的值是多少
考虑以下示例:
int array[] = {10, 20, 30};
int * p = array;
int array[] = {10, 20, 30};
int * p = array;
这里+++*p将打印11。首先,指针将被取消引用,返回10,然后再递增1,返回11
执行*p++后*p的值是多少
*p++
首先取消对指针p的引用,然后递增指针p。所以下一次对*p的调用将返回30
*++p的值是多少
考虑以下示例:
int array[] = {10, 20, 30};
int * p = array;
int array[] = {10, 20, 30};
int * p = array;
在这种情况下,*++p将打印20。首先,指针将递增,这意味着它将开始指向第二个元素。然后它将被取消引用
++*p的值是多少
考虑以下示例:
int array[] = {10, 20, 30};
int * p = array;
int array[] = {10, 20, 30};
int * p = array;
这里+++*p将打印11。首先,指针将被取消引用,返回10,然后再加1返回11。您的推理是正确的,但问题可能措辞不正确:如果语句是int q=*p++正如你所说,p
现在指向30
,但是q
等于20
<代码>整数q=*++p
导致p
指向30
,而q
也等于30
。你可以用你喜欢的编译器自己尝试一下,你会有一个好主意。这些问题应该从同一开始就独立出来吗;或者你是先做1题,然后做2题,然后做3题?@M.M:这3个问题都是从同一个开始的——可能。。。这本书没有描述。你的推理是正确的,但问题可能措辞很糟糕:如果语句是intq=*p++正如你所说,p
现在指向30
,但是q
等于20
<代码>整数q=*++p
导致p
指向30
,而q
也等于30
。你可以用你喜欢的编译器自己尝试一下,你会有一个好主意。这些问题应该从同一开始就独立出来吗;或者你是先做1题,然后做2题,然后做3题?@M.M:这3个问题都是从同一个开始的——可能。。。这本书没有描述。