int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr)); 求答案和原理
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/21 07:12:02
xRJ@P.HD(j_6mU."#>3s3_x.\05'Ue0f$@
ҠMg<9fx^U5TF
/F#0 eaCU5y!Zʊ쿸ch^=p`͒[o7XO&$ֱ_6ڑt˿>Ķ1G~]^y5ɅB/?Ș䆮v"ЕhU)?qQYƼ)3x=A$R@rF=?prZU ux ,[
int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr)); 求答案和原理
int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr)); 求答案和原理
int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr)); 求答案和原理
int arr[]={6,7,8,9,10}; //定义数组包括5个元素
int *ptr=arr; //定义指针变量,指向数组的首地址
*(ptr++)+=123; //等价于*(ptr++)=*(ptr++)+123首选计算括号里的,是后置加,加*是取括号指针所针变量的内容即6,用完之后,ptr指向arr[1],但现在是6+123即129赋给*(ptr++),这时ptr指向的是arr[1],所以arr[1]=129,记住赋完之后ptr又加1,指向的是arr[2]
printf("%d,%d",*ptr,*(++ptr));//而这时输出ptr就是8,而后边的是先地址加1再取内容,因些是9