c语言中的数组与指针
来源:互联网 发布:sql 查询字段长度 编辑:程序博客网 时间:2024/05/16 14:46
在c语言中,只有在函数定义的形式参数中,数组和指针是一致的。下面一段是c expert中的代码,我另外又加了一些。
char ga[] = "abcdefghijklm";void my_array_func(char ca[10]){printf(" value of ca = %#x \n", ca);printf(" addr of array param = %#x \n", &ca);printf(" addr (ca[0]) = %#x \n", &(ca[0]));printf(" addr (ca[1]) = %#x \n", &(ca[1]));printf(" ++ca = %#x \n\n", ++ca);}void my_pointer_func(char* pa){printf(" value of pa = %#x \n", pa);printf(" addr of ptr param = %#x \n", &pa);printf(" addr (pa[0]) = %#x \n", &(pa[0]));printf(" addr (pa[1]) = %#x \n", &(pa[1]));printf(" ++pa = %#x \n\n", ++pa);}int main(){printf(" value of ga = %#x \n", ga);printf(" addr of global array = %#x \n", &ga);printf(" addr (ga[0]) = %#x \n", &(ga[0]));printf(" addr (ga[1]) = %#x \n\n", &(ga[1]));my_array_func(ga);my_pointer_func(ga);return 0;}
上面的运行结果,我们可以看到,数组的参数地址和数组参数的第一个元素的地址是不一样的;另外,全局的数组中,ga 和 &ga是一致的,说明在数组的解引用过程中,是直接用该值的。相反,在指针中,不论是数组参数,还是指针参数(在这种情况下,其实编译器都是作为指针来看待的),ca 和 &ca是不一致的,说明在使用ca进行解引用的过程中,比ga多了一步(pa的情况同ca一致)。
- C语言中的指针与数组
- c语言中的数组与指针
- C语言中的指针与数组
- C语言中的多维数组与指针
- C语言中的数组与指针
- C语言中的数组与指针
- C语言中的指针与多维数组
- C语言中的数组名与指针
- C语言中的二维数组与指针
- c语言中的指针与数组
- C语言中的指针与数组
- C语言中的数组指针与指针数组
- C语言中的指针数组与数组指针的理解
- c语言中的指针(包括数组与指针相关)
- C 语言中的元素指针与一维数组指针
- C语言中的数组指针
- C语言中的指针数组
- c语言中的指针数组
- 进一步掌握STVD/COSMIC
- hibernate核心接口
- jdk的一些参数配置规则--打dump文件
- java.lang.OutOfMemoryError: PermGen space 解决方法
- winform DataGridView导出数据到Excel中,可以导出当前页和全部数据
- c语言中的数组与指针
- 用户输入年龄,然后输出,要求用类操作
- Socket 开发框架 SuperSocket
- Silverlight应用程序的部署
- javascript 实现 Unicode、ASCII相互转换!
- WSDL 教程
- MYSQL 视图创建
- 为CEdit控件设置右键菜单
- tomcat配置多个host