指针的学习

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

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

posted on 2015-08-25 09:36  月下之风  阅读(217)  评论(0编辑  收藏  举报

导航