常量和字符串(C语言初阶细致)
❤️总有你不会的,学到就是赚到 ❤️ 作者:每天都要记得刷题(●’◡’●) 时间:2022/04/02 测试:如果你能做对这道题,我就允许你点个赞后离开。(??大佬大佬??) printf(“%d\n”, strlen(“c:\test\628\test.c”)); 答案:查看目录对答案
文章目录
常量的分类
常量和变量的比较:
int a=10;//a就是变量
char ch=b;//b就是常量,常量只能以作为左值出现
字面常量
?字面上理解的常量就被我们当作是字面常量,就是这么简单.例如Hello world.
const修饰的常变量
结论:const修饰的常变量同时具有常量和变量的属性(正因为难以界定,所以起名为常变量)
上图勘误:关键词 字
证明:常量性质&变量性质 1.证明常量性质:
?*(1)由const定义:*
?*(2)无法被直接修改:(但是能被间接修改)*
备注:const 修饰的常变量能被指针间接修改:
#include<stdio.h>
int main()
{
const int a = 10;
int* p = &a;
*p = 5;
printf("%d", a);
return 0;
}
运行结果:
2.证明变量性质:
(1)a不能在定义数组时作数组元素(该位置只能是常量)
备注:关联知识:动态内存开辟形成的原因
#define定义的标识符常量
引言:C语言中,可以用 #define 定义一个标识符来表示一个常量.
- 标识符:C语言规定,标识符可以是字母、数字、下划线(A~Z, a~z, 0~9, _)组成的字符串,并且第一个字符必须是字母或下划线。 2.#开头的都是预处理命令(暂时不必深究),例如#include
#define MAX 10
备注:此处MAX即为标识符,由#define和enum定义的变量习惯是全大写,又如:#define PI 3.14
#define定义的不局限于整数,还可以是字符串 备注:#define末行习惯不加分号; 打印字符串一定一定要加双引号
enum枚举常量
枚举类型:即是可以被一一列举出来的常量,把他们组合起来形成的一个集合,被称为是枚举类型. 常识: 三原色:红色(RED)/绿色(GREEN)/蓝色(BLUE)是可以被一一列举出来且关联,因此可以使用enum枚举.
字符类型
字符与字符串比较
代码检测证明是否有\0作为结束标志:
结论(超级重要):字符没有’\0’作为结束标记
分别打印字符 和字符串: 解释: 0.字符数组定义时可以省略数组元素个数。 1.%s是专门来打印字符串的,当遇到’\0’时结束打印操作; 2.字符的’\0’需要手动添加,不加就无法停止打印;而字符串的’\0’在末尾自动添加, 3.但由上面的结论(字符没有’\0’作为结束标记)得知在打印字符的时候一直没有遇到结束标志,就会出现"烫烫烫烫"出错.
但是如果我就想打印出char ch1[] = {‘a’,‘b’,‘c’}; 下面提供两种方法:
方法一:
?(1)借用循环+%c打印
方法二:
?(2)在char ch1[] = {‘a’,‘b’,‘c’};中手动添加一个’\0’,变成: char ch1[] = {‘a’,‘b’,‘c’,‘\0’’};
借用strlen来求字符串长度: Q:什么是strlen? A:strlen是求字符串长度(有效字符,即是肉眼可见的实际字符)的一个函数,在MSDN可以查找相关定义,头文件和返回值
解释:strlen是也是以\0作为结束标志的,原理和上面的%s类似 备注:可以利用好MSDN这个工具,解决一些问题
转义字符(答案?在这)
ASCII表的由来
:我们知道电脑存储是将数据转换为二进制来存储的,那么就会产生一个问题就是字符怎么转换成二进制存储起来,所以聪明的程序员就将字符映射成数字,例如‘0’映射成了48,‘A’映射成了65,‘a’映射成了97。(只要记住’0’,‘a’,'A’就可以了) 由此拓展: ?大写字母‘A’转换成‘a’:大写字母‘A’+32=‘a’ ?字符‘4’转数字4:‘4’-‘0’ ?数字4转字符‘4’:‘0’+4
?常见的转义字符
\n换行符(反斜杠不要写反) \t制表符 \0字符串结束标志符号
如果你还有更多关于ASCII表方面的疑惑,速戳: ASCII百科全书
?答案14 易错点解释:源自\ddd, \62是一个字符,表示的是一个八进制的数字(\628的8不属于八进制了),转换为十进制是6*16+2=98
相关文章
- 是时候,把那些压箱底的Jetson NANO 3D打印外壳拿出来了
- Mathematica安装教程详解【附安装包】
- 在NVIDIA Jetson上开发要知道的知识点
- 更新太快,CUDA 12.0工具包正式发布啦
- 在 Google Colab 上试验 NVIDIA TAO 工具包和预训练模型
- NVIDIA 发布最新版TAO Toolkit 4.0,不需要AI专业知识也可以生成 AI 模型
- 开发者们好评如潮,NVIDIA Jetson AGX Orin 是怎么做到的?
- 【架构设计】资深 CIO Neal Sample:所有架构都是错误的
- 一篇文章回答你关于NVIDIA DLA的所有疑问
- 掌握这几个NVIDIA Jetson 开发小技巧,领先80%的开发者
- CUDA 开发工具的新功能
- 【应用分类】技术应用概述
- TiCDC 源码阅读(二)TiKV CDC 模块介绍
- 【企业架构】什么是 TOGAF? 企业架构方法论
- 「新兴技术和创新」EA874 STREET 新兴技术规划流程
- 【数字化转型】数字化转型指南 - 第2部分
- TiCDC 在大单表场景下的性能优化:我们如何将吞吐量提升 7 倍?
- IDM2023软件最新版下载器有哪些新功能?
- 搭建含有腾讯云插件的WordPress网站
- 属于 PingCAP 用户和开发者的 2022 年度记忆