为什么有时仅使用Ampersand运算符在C 中分配指针
Why is an ampersand operator used only sometimes to assign a pointer in C++?
有人可以解释为什么将数组的内存地址分配给指针与将'正常'变量分配给指针不一样?(int a; int* p =&a;(
我知道一个事实,即阵列(& arr(前面的andand指向其内存地址,那么为什么不起作用地将其分配给指针?
float* p;
float arr[5];
p = arr; // why is this correct
p = &arr; // and this isn't
工作草案的报价,编程标准语言C :
4.2数组转换转换
" n t的数组"或"未知绑定的数组 t"可以转换为"指针t"类型的序言。这 结果是指向数组的第一个元素的指针。
因此, arr
与示例中的 &arr[0]
相同,这是指向数组的第一个元素的指针。
请注意,您也可以这样做:
float (*p)[5]; // pointer to array
float arr[5];
p=&arr;
并使用:
访问您的元素 (*p)[0];
(*p)[1];
(*p)[2];
...
相关文章:
- 通过双指针分配指针
- 在不工作的情况下为数组分配指针,但反过来也可以
- 无法使用"std::make_shared"分配指针
- 分配指针时出现分段错误
- 为什么有时仅使用Ampersand运算符在C 中分配指针
- 重新分配指针阵列的一部分的安全方法
- 为什么在执行增量操作之前分配指针值
- 当指针指向的对象被另一个类的实例删除时,重新分配指针
- 在堆上分配指针的原因是什么?
- 有没有办法防止分配指针?
- 将运算符重写应用于具有动态分配指针的类
- 在堆上分配指针数组
- 在另一个结构中的结构内解除分配指针
- 分配指针后,是否可以为指针指向的事物分配变量名称?
- 重新分配指针后,将类功能与指针一起使用
- 为什么我的新分配指针会自动在程序退出上删除
- 分配指针的方法之间有什么区别?
- 如何声明和分配指针
- 内存分配(指针和堆栈)
- 通过参数分配指针的值