C语言指针赋值语句分析:int *p1, *p2, m=5, n; 的正确赋值方式
**若有定义 int p1, p2, m=5, n;, 以下均为正确赋值语句的选项是 ( ) 并分析错误的原因
A. p1=&m; p2=&p1; 选项A正确,p1指向m的地址,p2指向p1的地址。
**B. p1=&m; p2=&n; p1=p2; 选项B错误,p1指向m的地址,p2指向n的地址,但是 *p1=*p2 会将m的值改为n的值,与题目无关。
**C. p1=&m; p1=p2; 选项C正确,p1指向m的地址,*p1=*p2 相当于将m的值改为未初始化的值,但是语法上是正确的。
**D. p1=&m; p2=p1; 选项D错误,p1指向m的地址,p2未初始化,*p2=*p1 会将未初始化的地址赋值为m的值,与题目无关。
原文地址: https://www.cveoy.top/t/topic/nuZd 著作权归作者所有。请勿转载和采集!