指针函数的调用: 字符型

img

img


在被调用函数内*p1的值还是b,为什么出来以后c1就为A了?
p1和c1,p2和c2他们的指向到底相同吗

因为函数开头有a=b,所以函数中a和b其实是一个东西。所以输出分别是aa和bb
但由于a=b是改变不了外部传入指针p1和p2的关系的,因此p1一直指向c1,没有改变过。但由于函数中(*a)++的原因,导致指针b,也就是p2指向的字符值加了1,最终输出是Ab

c1是main中的变量有属于自己的地址,p1是指向c1地址的指针,func中将b的地址赋值给了a所以a和b所指向的都为c2了所以输出aa (a)++则是将a,*b所指向的变量值修改所以修改为了bb。运行完p1有被修改为b但 c1还是那个变量并未被修改p2也被修改为了b所以被修改成了Ab