C语言 函数理解(以数组做参数)
2016-01-18 10:12
330 查看
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int run(int *p){ //p也是一个指针,传递到是地址(函数传参是复制机制--数组例外,所以是复制一个指针变量,把地址当作值赋给p) printf("\np的大小是%d", sizeof(p));//结果是4 printf("\na[1]=%d", *(p + 1)); return 0; } int run2(int p[5]){//对于形参数组,当数组当作函数参数的时候会退化为指针 printf("\n形参数组p的大小是%d", sizeof(p));//结果是4 printf("\n形参数组p[1]=%d", p[1]); return 0; } void main(){ int a[5] = { 1, 2, 3, 4, 5 }; //a是数组第一个元素的指针 printf("数组a的大小是%d", sizeof(a)); //但是sizeof(a)的大小却是20, run(a); run2(a); //这里说明指针a是一个很特殊指针 system("pause"); }
相关文章推荐
- C语言学习之指针第一讲
- C++入门(19):向量与迭代器
- C/C++ Summary at USC
- Sicily 1920. Divide The Stones
- #枚举和排序 B - ID Codes
- 控制流【重学C之三】
- C++编程(四)--- 代码规范
- 【C语言】实现strcat函数
- 【C语言】实现strcpy函数
- 编程题#6: priority queue练习题(C++程序设计第9周)
- 「C语言」原码反码补码与位运算
- 编程题#5: 热血格斗场(C++程序设计第9周)
- 编程题#4: 字符串操作(C++程序设计第9周)
- C++namespace
- 【C语言】实现memcopy、memmove函数
- [项目]用C++实现的壳(基础版)
- c++11 访问者模式
- 高性能c语言编码
- C++ std::vector元素的内存分配问题
- C++编程对缓冲区的理解