C语言 为什么数组名(数组首地址)不能进行加减操作?
2017-03-11 23:50
701 查看
因为数组名可以理解是一个指针常量(例如,int * const p),所以数组名不能直接进行加减法。
如何对数组地址进行加减法操作:1. int *a[5] = { 1, 2, 3, 4, 5 }; int *p = a;然后对指针变量p进行加减操作。
2. 将数组名进行参数传递,数组名会退还成为一个指针变量。
相关文章推荐
- java类中用类的数组作为函数参数传给类,为什么不能直接对类的数组进行操作?
- C语言数组和指针的理解_在取地址运算上的操作_指针加减操作_a 和&a 的区别
- 退出后点击浏览器后退不能回到成功页面;直接进入页面和跳转进入页面样式不同;防止直接输入页面地址或servlet;当servlet跳servlet时,进行其他操作后后退出现错误!
- 如果改变了形参数组的值 从而在调用函数期间 形参数组就和实参数组共占同一段内存单元 为什么形参数组从实参数组那里得到起始地址后 请问各位C语言高手:当用数组名作函数参数时 也就该变了实参数组的值
- Iterator为什么不能对容器的进行添加或修改操作(可以删除)
- c语言:为什么不进行下标检查,总结下指针和数组
- android执行远程地址,就会报android.os.Net..... 这个原因是网络操作不能在主线程进行
- 为什么对于类的const成员,只能使用初始化列表,而不能在构造函数内部进行赋值操作
- cpu进行操作的都是地址 *号在c语言中的作用
- android执行远程地址,就会报android.os.Net..... 这个原因是网络操作不能在主线程进行
- 为什么可以对数组名进行 * 和 & 操作
- 你不知道的c语言之为什么数组的大小不能是变量
- 我们说boot loader通常采用汇编和C语言相结合来编写的,那能不能全部用C语言来进行编写呢?为什么
- java中将数组转换为集合,不能进行增删操作解惑
- 同一个程序在命令行下,编译为什么报错???难道命令行下不能进行导入包的操作???
- c语言 数组名&&结构体名 为什么不能用数组名给数组赋值,结构体却可以
- ConcurrentModificationException遍历集合时,不能对集合进行修改操作
- C语言学习知识点(四):数组名a与取地址数组名&a的区别
- 爆料:为什么Entity Framework不能进行跨数据库查询
- 用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作