全局指针做实参,子函数修改形参

C语言函数调用上下文中的指针问题

代码如上图,疑问如下:
1. main函数中调用func1()时传的是全局指针,在func1()函数中有对形参做增减操作,这种增减会影响全局指针的指向吗?

2. *a++ 究竟++先执行还是*先执行

运行结果

C语言函数调用上下文中的指针问题

得出结论

1. main函数中调用func1()时传的是全局指针,在func1()函数中有对形参做增减操作,这种增减会影响全局指针的指向吗?
答:不会影响,操作的是形参,形参相当于局部变量,作用域仅在本函数内,生存期是本函数结束自己就消亡。

2. *a++ 究竟++先执行还是*先执行
答:*的优先级最低,而++是右结合,故先a++,后再取内容。类似的还有 *p->num ,也是右结合。 &p->num 同样是右结合。

const与*的结合

1.char const *ptr;

内容是常量,指针本身可变

2.const char *ptr;

与上面一样,内容是常量,指针本身可变

3.char * const ptr;

指针本身是常量,但他所指向的内容可变

总结:

紧挨着const后面的词才是被const修饰的对象。

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2021-10-22
  • 2021-08-26
  • 2021-11-03
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-18
  • 2021-07-10
  • 2022-01-05
  • 2022-12-23
  • 2021-12-05
相关资源
相似解决方案