当前位置:网站首页>C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.5 数组和指针的其他区别
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.5 数组和指针的其他区别
2022-08-04 04:44:00 【weixin_客子光阴】
/*数组和指针的其他区别
* 指针 数组
*保存数据的地址 保存数据
*间接访问数据,首先取得指针的内容, 直接访问数据,a[i]只是简单以a+i为地址取得数据
作为地址,然后从这个地址提取数据
如果指针有一个下标[i],就把指针
的内容加上i作为地址,从中提取数据
*通常用于动态数据结构 通常用于存储固定数目且数据类型相同的元素
*相关的函数为malloc(), free() 隐式分配和删除
*通常指向匿名数据 自身即为变量名
*/
/*数组和指针都可以在它们的定义中用字符串常量进行初始化。但底层的机制却不相同
*定义指针时,编译器并不为指针所指向的对象分配空间,它只是分配指针本身的空间,除非在
*定义的的同时赋给指针一个字符串常量进行初始化。
*/
/*为p和“breakfruit"都分配了内存空间*/
char *p = "breadfruit";
/*在ANSI C中,初始化指针所创建的字符串常量被定义为只读。如果试图通过指针修改这个
*字符的值,程序就会出现未定义的行为。
*/
float *pip = 3.14; /*错误!无法通过编译*/
/*注意只有对字符串常量才是如此,不能指望为浮点数之类的常量分配空间*/
/*数组也可以用字符串常量进行初始化*/
char a[] = "gooseberry";
/*与指针相反,由字符串常量初始化的数组是可以修改的。
*其中的单个字符在以后可以改变。
*/
例如:
strncpy(a, "black", 5);
边栏推荐
猜你喜欢
10 Convolutional Neural Networks for Deep Learning 3
Tensors - Application Cases
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
拿捏JVM性能优化(自己笔记版本)
Enterprise live broadcast is on the rise: Witnessing focused products, micro-like embracing ecology
如何简化现代电子采购的自动化?
烧录场景下开发如何进行源代码保密工作
The video of machine learning to learn [update]
TL431的基本特性以及振荡电路
软件测试如何系统规划学习呢?
随机推荐
7-1 LVS+NAT load balancing cluster, NAT mode deployment
Tensors - Application Cases
拿捏JVM性能优化(自己笔记版本)
大型连锁百货运维审计用什么软件好?有哪些功能?
How to automatically export or capture abnormal login ip and logs in elastic to the database?
如何动态添加script依赖的脚本
There is an 8 hour difference between the docker installation of mysql and the host.
2022软件测试面试题 最新字节跳动50道真题面试题 刷完已拿下15k 附讲解+答疑
企业直播风起:目睹聚焦产品,微赞拥抱生态
Eight guiding principles to help businesses achieve digital transformation success
For Qixi Festival, I made a confession envelope with code
附加:对于“与数据表对应的实体类“,【面对MongoDB时,使用的@Id等注解】和【以前面对MySQL时,使用的@Id等注解】,是不同的;
System design. Seckill system
2022年PMP考试延迟了,该喜该忧?
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
【技巧】借助Sentinel实现请求的优先处理
深度学习21天——卷积神经网络(CNN):实现mnist手写数字识别(第1天)
JVM的内存模型简介
redis中常见的面试题
【21天学习挑战赛】直接插入排序