龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

学点 C 语言(36): 函数 - 数组参数(2)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
3. 即使你在形参中指定维数也不起作用: #include void getArr(int p[2], int si); int main(void) { int ns[] = {1,2,3,4,5}; getArr(ns, sizeof(ns)/sizeof(ns[0])); getchar(); return 0; } void

  3. 即使你在形参中指定维数也不起作用:

#include 

void getArr(int p[2], int si);

int main(void)

{

  int ns[] = {1,2,3,4,5};

  getArr(ns, sizeof(ns)/sizeof(ns[0]));

  

  getchar();

  return 0;

}

void getArr(int p[2], int si) {

  int i;

  for (i = 0; i < si; i++) {

    printf("%d

", p[i]);  

  }

}

  4. 既然是指针, 其值就有被修改的可能:

#include 

void getArr(int p[], int si);

int main(void)

{

  int ns[] = {1,2,3,4,5};

  size_t i;

  

  getArr(ns, sizeof(ns)/sizeof(ns[0]));

  

  for (i = 0; i < sizeof(ns)/sizeof(ns[0]); i++) {

    printf("%d

", *(ns+i));  

  }

  

  getchar();

  return 0;

}

void getArr(int p[], int si) {

  int i;

  for (i = 0; i < si; i++) {

    p[i]++;  

  }

}

  5. 如果是字符数组, 它自己能判断数组尾界:

#include 

void getArr(char p[]);

int main(void)

{

  char ns[] = "ABCDEFG";

  

  getArr(ns);

  

  getchar();

  return 0;

}

void getArr(char p[]) {

  int i;

  for (i = 0; p[i]; i++) {

    printf("%c: %d

", p[i], p[i]);    

  }

}

精彩图集

赞助商链接