1 指针作为参数传递其实也是值传递,传递的是一个地址值(和普通的值传递一样)。值传递时函数将形参被当做函数的局部变量来处理,就是在栈上开辟了内存空间来存放形参

void swap(int* a, int* b){

int t = *a;

*a = *b;

*b = t;

}

//这样并不能交换a,b

void swap1(int* a, int* b){

int* t = a;

a = b;

b = t;

}

2 char c[] = "ab" 和char* p = "ab"是不一样的

char c[] = "ab"中"ab"实际上是分配在栈上得,char* p = "ab" 中"ab" 是常量池分配

sizeof(c)= 3 sizeof(p) = 4

作为函数参数传递,则数组直接退化为指针

相关文章:

  • 2021-06-20
  • 2021-10-20
  • 2021-06-20
  • 2022-12-23
  • 2022-12-23
  • 2021-06-19
  • 2021-07-17
  • 2021-08-03
猜你喜欢
  • 2022-02-26
  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
相关资源
相似解决方案