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
作为函数参数传递,则数组直接退化为指针