标签:
#include <stdio.h> int sum(int x,int y){ return x+y; } void printNum(int x){ //判断x的值 if (x>0) { printf("%d\t",x); }else{ printf("0\t"); } } int main(int argc, const char * argv[]) { int a[5]={1,-2,-3,-4,5}; //需求:要求计算数组的第一个元素和最后一个元素的和 // a[0] // a[4] // 1 5 int s = sum(a[0], a[4]); printf("s = %d\n",s); for(int i=0;i<5;i++){ printNum(a[i]); } return 0; }
s = 6 1 0 0 0 5
【掌握】数组名作为函数参数
#include <stdio.h> void change(int arr[2]){ //测试,打印arr的值 printf("arr = %p\n",arr); arr[0]=18; } void test1(){ int a[2]={1,2}; printf("a = %p\n",a); //a 0x7fff5fbff7c0 //用数组名作为函数参数,传递的是地址 //实参是数组名a,形参是arr //此时 a和arr在内存中代表了同一块内存空间 change(a); printf("a[0] = %d\n",a[0]); } //定义一个函数 float avg(float score[5]){ float sum = 0.0f; for (int i=0; i<5; i++) { //把门课的成绩加到了一起 sum += score[i]; } return sum/5; } int main(int argc, const char * argv[]) { test1(); float f1[5]={59.9,58.72,60.11,56.33,81.66}; //数组名作为了函数的实参 //是地址传递 float av = avg(f1); printf("%.2f\n",av); return 0; }
a = 0x7fff5fbff6c0 arr = 0x7fff5fbff6c0 a[0] = 18 63.34
【掌握】数组名作为函数参数的注意点
数组名作为函数的参数的注意点 1、形参数组的类型和长度要和实参一致
2、形参的数组的长度和实参的长度可以不一致,虽不会报错,运行的结果和实际不相同
3、形参数组的长度可以不写 4、关于数组名作为函数参数后,数组的长度信息丢失的问题
#include <stdio.h> //打印数组的内容 void print_arr(int arr[]){ for (int i=0; i<10; i++) { printf("%d\t",arr[i]); } } void print_arr2(char arr[]){ //为什么是8? //C语言中规定,不管什么类型的数据,数据的内存地址在内存中占用8个字节 //int a = 4; int len = sizeof(arr); //8个字节 printf("\nlen = %d\n",len); //40? // for (int i=0; i<10; i++) { // printf("%d\t",arr[i]); // } } int main(int argc, const char * argv[]) { //数组名作为函数的参数的注意点 //1、形参数组的类型和长度要和实参一致 // 1)如果类型不一致,会造成错误 int a[10]={1,2,3,434,5,6,7,7,8,9}; //print_arr(a); //遍历数组,并且打印出来 正常写法 //错误写法 // float f1[5]={1.2f,33.4f,2.3f,5.6f,3.14f}; // //实参的类型和形参的类型不匹配 // print_arr(f1); //print_arr 形参是int类型的数组 //2、形参的数组的长度和实参的长度可以不一致,虽不会报错, // 运行的结果和实际不相符 print_arr(a); //3、形参数组的长度可以不写 //4、关于数组名作为函数参数后,数组的长度信息丢失的问题 // int len = sizeof(a); //a占用的总得字节数 // printf("\nlen = %d\n",len); //40 // //printf("%p\n",a); //print_arr2(0x7fff5fbff790); // double d1[3]={2.3,4.5,5.5}; // print_arr2(d1); char ch[3]={‘a‘,‘b‘,‘c‘}; print_arr2(ch); return 0; }
<16>【理解】数组元素作为函数参数+【掌握】数组名作为函数参数+【掌握】数组名作为函数参数的注意点
标签:
原文地址:http://www.cnblogs.com/kongweiiwei/p/4627591.html