C语言指针操作:分析语句"q=(*--p)++;"的执行结果
变量q的值为2。
代码分析:
-
定义数组和指针:
int x[] = {4, 2, 3, 1};定义了一个整型数组x,包含元素4, 2, 3, 1。int q, *p = &x[1];定义了一个整型变量q和一个指向整型的指针p,并让p指向x数组的第二个元素(即值为2的元素)。
-
指针操作:
--p:使指针p指向的前一个元素,即指向x数组的第一个元素(值为4的元素)。*--p:获取指针p所指向元素的值,即获取x数组第一个元素的值,为4。(*--p)++:先获取指针p所指向元素的值,然后将该值加1,即4+1=5。同时,指针p指向的元素的值被修改为5。
-
赋值:
q = (*--p)++:将(*--p)++的结果(即5)赋值给变量q。
最终结果:
执行完语句后,变量q的值为5,数组x的值变为{5, 2, 3, 1},指针p指向数组x的第一个元素(值为5的元素)。
原文地址: https://www.cveoy.top/t/topic/pCFZ 著作权归作者所有。请勿转载和采集!