当前位置: 首页 > news >正文

C语言笔记13

字符数组与字符串常量区别

#include <stdio.h>
int main()
{char str1[] = "hello bit.";char str2[] = "hello bit.";char *str3 = "hello bit.";char *str4 = "hello bit.";if(str1 == str2)printf("str1 and str2 are same\n");elseprintf("str1 and str2 are not same\n");if(str3 == str4)printf("str3 and str4 are same\n");elseprintf("str3 and str4 are not same\n");return 0; 
}

从这个代码可以看出str1和str2是两个不同的字符数组,而str3和str4是两个字符指针,"hello bit."是一个字符串常量,需要申请内存进行存储。

(1)对于  char str1[] = "hello bit.";   char str2[] = "hello bit.";是从"hello bit."一个一个赋值给  char str1[]和  char str2[];虽然它们的存储的内容都是"hello bit.",但是存储在两个不同的数组中,数组名是数组首元素的地址,所以str1 != str2

(2)  char *str3 = "hello bit."和char *str4 = "hello bit."是存储字符串常量"hello bit."的首元素h的地址,"hello bit."是一个字符串常量,需要申请一份内存空间进行存储就行,所以str3和str4都是存储"hello bit."的首元素h的地址,,所以它们地址是一样的。即str3 == str4。

(3)对于要操作字符数组,对数组中存储的元素进行修改就要写出数组的形式,就如:  char str1[] = "hello bit."; 如果对的元素不进行修改操作,可以写成指针的形式来存储字符串常量,就如: char *str3 = "hello bit.";
 

http://www.lryc.cn/news/347495.html

相关文章:

  • JavaScript进阶——04-创建对象和继承
  • 队列(详解)
  • 【原创】nnUnet V1在win11下的安装与配置
  • C语言之指针初阶
  • 异常检测的学习和实战
  • RabbitMQ 面试题(一)
  • org.postgresql.util.PSQLException: 错误: 关系 “dual“ 不存在
  • mysql权限分类
  • 【C++11】列表初始化、右值引用的详细讲解(上)
  • 【JAVA进阶篇教学】第十三篇:Java中volatile关键字讲解
  • 蓝桥杯-地宫取宝
  • 带头单链表 C++实现
  • 学习c#第24天 枚举类型
  • TensorFlow运行bug汇总
  • docker部署调度程序
  • websocket和http协议的区别
  • CSS之定位
  • [IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
  • 神经网络复习--神经网络算法模型及BP算法
  • 【Java】/*方法的使用-快速总结*/
  • kotlin中协程相关
  • (自适应手机端)物流运输快递仓储网站模板 - 带三级栏目
  • Navicat导出表结构到Excel或Word
  • Golang编译优化——稀疏条件常量传播
  • 人工智能培训讲师咨询叶梓介绍及智能医疗技术与ChatGPT临床应用三日深度培训提纲
  • HCIP(BGP综合实验)--8
  • 深入理解C++中的Vector容器:用容器构建高效程序
  • 目标检测YOLO实战应用案例100讲-基于深度学习的交通场景多尺度目标检测算法研究与应用(下)
  • react 类组件 和 函数组件 声明周期 对比
  • 智慧变电站守护者:TSINGSEE青犀AI视频智能管理系统引领行业革新