C语言 常量和宏定义
C语言:常量和宏定义
- 什么是常量
- 常量的类型
- 定义符号常量(宏定义)
- 标识符是什么
- 字符串常量
- 代码
什么是常量
在程序运行时,值不能被改变的量,称之为常量。
常量的类型
- 整型常量:520,1314,123
- 实型常量:3.14,10.15,6.66
- 字符常量
- 普通字符:‘H’,‘i’,‘p’,‘s’
- 转义字符:‘\n’,‘\t’,‘\b’ - 字符串常量:“FishC”
- 符号常量:使用之前必须先定义
定义符号常量(宏定义)
- 格式:#define 标识符 常量
- 比如:
- #define NAME “Eminem”
- #define NAMEA “Andre 3000”
- #define RAPPER “说唱歌手”
标识符是什么
- 标识符只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线组成。
- 例如:hiphop_from_1973 - 必须是字母或者下划线开头。
- 标识符区分大小写,不同大小写代表不同的标识符。
- 不能使用关键字来命名标识符。
字符串常量
- 字符:‘h’,‘i’,‘p’,‘h’,‘o’,‘p’
‘h’ | ‘i’ | ‘p’ | ‘h’ | ‘o’ | ‘p’ |
---|
编译器在编译的时候为每一个字符准备一个字节的空间来存放。
- 字符串:
- “Hello world”
‘H’ | ‘e’ | ‘l’ | ‘l’ | ‘o’ | ‘ ’ | ‘w’ | ‘o’ | ‘r’ | ‘l’ | ‘d’ | ‘\0’ |
---|
而当常量为字符串时,使用一个特殊的转义字符 ‘\0’ 来表示字符串的结束位置,当操作系统读取到这个转义字符的时候,就结束对字符串的读取,需要注意的是,转义字符也需要一个字节的内存。
代码
#include <stdio.h>
#include <stdlib.h>
#define NAME "Eminem"
#define NAMEA "Andre 3000"
#define RAPPER "说唱歌手"int main()
{printf("%s和%s都是%s\n",NAME,NAMEA,RAPPER);return 0;
}
运行结果:
C语言 常量和宏定义相关推荐
- 带你学C带你飞 | printf函数 | 变量 | 常量和宏定义 | 数据类型 | 取值范围 | 字符串 | 运算符
文章目录 一.printf函数 1.printf函数 2.printf函数课后作业 二.变量 1.变量 2.变量课后作业 三.常量和宏定义 1.常量和宏定义 2.常量和宏定义的课后作业 四.数据类型 ...
- 【小甲鱼C语言】课后笔记第一章第三节——常量和宏定义
目录 1.常见的常量 2.宏定义(符号常量) 3.标识符 4.字符串常量 5.课后习题(编程题) 1.常见的常量 整型常量:520, 1314, 123 实型常量:3.14, 5.12, 8.97 字 ...
- 【C语言】高级宏定义
前言 宏定义分为不带参数的宏定义和带参数的宏定义,不带参数的宏定义就是普通的宏定义,带参数的宏定义则稍稍复杂.下面将结合一些例子讲解这些显得比较高级的宏定义. 文章目录 前言 一.高级宏定义 1.#d ...
- C语言中关于宏定义的学习
1.C语言中宏定义的使用 2.GCC官方文档 3.C语言宏定义的几个坑和特殊用法 转载于:https://www.cnblogs.com/Brandon0807/p/11146344.html
- C语言中#、##宏定义的用法
一.#的用法 #用于编译器编译过程进行预处理. 1.宏定义 #define ON 1#ifndef _PARA_ #define _PARA_ #enddef#ifdef _PARB_ #define ...
- 【C语言进阶】 宏定义实现字符串引用
宏定义实现字符串引用 原理 最简单的引用策略 使用#进行转义 原理 用宏定义实现字符串引用: 这种做法在编译的时候直接给宏名所对应的字符串 分配了一个内存地址空间,可以进行字符串输出.地址打印.指针操 ...
- C语言 带参数宏定义中 # 和 ## 知识点总结、代码分析
目录 一.宏定义中 "#"知识点 1.直接转换字符串,不展开. 2.转换出的结果一定是"字符串". 二.宏定义中 ## 知识点 1.应用场景 2."# ...
- C语言字符串、宏定义及主函数介绍
希望你每天醒来都是阳光的,不会因为别人的几句话.几个表情和几个举止,影响自己的心情,好好生活,总会遇见美好的事... ---- 网易云热评 一.字符串 1.字符串声明 #include <st ...
- C语言函数调用及宏定义代码实例
函数 #include<stdio.h>int square(int x); int square(int x){return x * x; }/*** 求x的平方*/ int main( ...
最新文章
- Android JUnit测试说明和实例演示
- html网站开发与php网站开发_海南网站开发,网站建设,商城网站,功能性网站开发...
- HU 3496 Watch The Movie---二维费用
- [视频教程] 如何在Linux深度系统deepin下安装docker
- if else可以看成一个完整的代码块
- ffmpeg源码学习之time_base
- 塑料封装可靠性问题浅析
- LeetCode 1786. 从第一个节点出发到最后一个节点的受限路径数(迪杰斯特拉 + 拓扑排序)
- c#实现SQLServer存储照片,并读取照片
- ka3525_如何使用KA Lite投放教育内容
- 公有云 私有云 混合云_您需要了解的有关混合云的知识
- 第六天 购车程序
- height、clientHeight、scrollHeight、offsetHeight区别
- 彻底理解ThreadLocal(转)
- 冲突域和CSMA/CD
- 2020网上答题拿证书的竞赛_参赛答题拿证书—全国大学生知识竞赛
- centos 网络自动连接_自动连接最优信号 腾讯云?云兔解决物联网络连接问题
- 【转】navicat远程连接mysql,2003 can't connect to mysql server on 10038
- typecho+handsome美化
- Java 安全 后端返回文件流
热门文章
- fastjson 属性大写问题
- 讹传的Win7睡眠(待机)快捷方式“rundll32.exe powrprof.dll,SetSuspendState 0,1,0”
- 【Hive】Beeline CLI介绍
- 详述 Spring MVC 启动流程及相关源码分析
- linux 显卡 压力测试软件,显卡压力测试工具 GpuTest
- 《光剑教教义:五信 九训 十诫 九罪》
- 多出口路由及其动态切换的配置
- 【亲测有效】解决PPT里多个图片无法使用组合功能
- 使用 Screen 创建并管理多个 shell
- 世界经典咖啡@配制方法