C语言标识符的命名规则

变量或者函数起的名字就是标识符,而且C语言的标识符有它自己的命名规则;

  • 标识符的长度最好不要超过8位,因为在一些版本的C语言中标示符的前八位是有效的,所以当两个标识符的前八位相同时会被识别为同一个标识符;
  • 标识符要严格区分大小写,当两个同名标识符的大小写不同时,这两个标识符便为两个不同的标识符;
  • 标示符最好选择有意义的单词组成,尽量见面名知意,不要使用中文;
  • 避免使用C语言关键字作为标识符。

变量与赋值

变量:变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。 变量名和变量值是两个不同的概念。

  • 变量定义的一般形式为:数据类型 变量名;
  • 多个类型相同的变量:数据类型 变量名, 变量名, 变量名...;
  • 变量名和标识符的命名规范完全相同。

赋值

  • 先声明再赋值
  • 声明的同时赋值
  • 不允许连续赋值,如int a=b=c=5;是不合法的。
#include <stdio.h>
int main()
{
int age = 18; /*声明的同时赋值*/
// int age; age = 18;/*声明后再赋值*/
printf("我今年%d岁!\n", age);
return 0;
}

基本数据类型

C语言中的基本数据类型有四大类:基本类型、构造类型、指针类型、空类型。

整型、实型与字符型



注释:整型数据是指不带小数的数字,浮点数据是指带小数的数字。

整型的类型

浮点型的类型

格式化输出

格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。

其格式为:printf("输出格式符",输出项);

C语言中的常用格式化符:

当输出语句中包含普通字符时,可以采用一下格式:

printf("普通字符输出格式符", 输出项);

int a = 10;
printf("a=%d", a); 输出结果:
a = 10

如果要输出多个变量的并指定变量的位置时候,格式符还可以连用,变量之间需要用逗号隔开;

int a = 10;
float b = 7.56
char x = 'c';
prntf("整数:%d, 小数: %f , 字符:%c", a, b, c); 输出结果:
整数:10,小数:7.560000,字符:c

注释:格式符的个数要与变量、常量或者表达式的个数一一对应

不可改变的常量

值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量。

直接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如:

  • 整型常量:13、0、-13;
  • 实型常量:13.33、-24.4;
  • 字符常量:‘a’、‘M’
  • 字符串常量:”I love imooc!”

分别打印四种直接常量:

printf("%d\n", 100); //整型常量
printf("%f\n", 3.14); //实型常量
printf("%c\n", 'A'); //字符常量
printf("I am C"); //字符串常量

用一个标识符来表示一个常量,被称之为符号常量。符号常量在使用前必须先定义,其一般形式为:

#define 标识符 常量值

符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分。下面是一个使用符号常量的小例子:

#include <stdio.h>
#define PI 3.14 //定义一个圆周率常量
int main()
{
printf("圆周率: %f\n", PI);
return 0;
} 运算结果:
圆周率:3.140000

注释:常量是不可变的

自动类型转换

数据类型存在自动转换的情况,比如:

char c='a';
int x;
double d;
x=c; //字符类型可以自动转换为整型
d=x; //整型可以自动转换为浮点类型

自动转换发生在不同数据类型运算时,在编译的时候自动完成。自动转换的规则如下图:

char类型数据转换为int类型数据遵循ASCII码中对应的值。

注释:字节小的可以向字节大的自动转换,但是字节大的不能向字节小的自动转换。

#include <stdio.h>
int main()
{
char c = 'a';
int n = c; //将c赋值给n
float f = n; //将c赋值给f
double d = f; //将c赋值给d
printf("%d\n",n);
printf("%f\n",f);
printf("%lf\n",d);
return 0;
}

强制类型转换

强制类型转换是通过定义类型转换运算来实现的。其一般形式为:

(数据类型)(表达式)

作用是把表达式的运算结果强制转换成类型说明符所代表的类型,例如:

double tempOne = 6.777
int tempTwo = (int)tempOne;//强制转换为int类型
printf("%f\n", tempOne);
printf("%d\n", tempTwo); 输出结果:
6.777000
6

注释:使用强制转换时应该注意:

  • 数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。
  • 转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。
  • 强制转换后的运算结果不遵循四舍五入原则。

初识C语言(二)的更多相关文章

  1. 《Go并发编程实战》读书笔记-初识Go语言

    <Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...

  2. 【Kotlin】初识Kotlin(二)

    [Kotlin]初识Kotlin(二) 1.Kotlin的流程控制 流程控制是一门语言中最重要的部分之一,从最经典的if...else...,到之后的switch,再到循环控制的for循环和while ...

  3. c语言二维数组传递

    c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

  4. 初识 go 语言:方法,接口及并发

    目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...

  5. 初识 go 语言:数据类型

    目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...

  6. 初识 go 语言:语法

    目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...

  7. 初识 go 语言

    目录 go简介 安装 hello world 函数 变量 常量 可见性规则 结束 前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学 ...

  8. 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言

    Tornado框架-逻辑处理get()方法和post()方法,初识模板语言 Tornado框架,逻辑处理里的get()方法,和post()方法 get()方法,处理get方式的请求post()方法,处 ...

  9. 01_初识C语言

    第一章 - 初识C语言 基本了解C语言的基础知识,对C语言有一个大概的认识. 每个知识点就是简单认识,不做详细讲解. 1. 什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的 ...

随机推荐

  1. Alan Turing的纪录片观后感

    清明假期,火车上闲着,上B站看了图灵的纪录片 好吧,感想就两个词,数字化 和 自动化

  2. [洛谷P1842] 奶牛玩杂技

    题目类型:贪心+证明,经典题 传送门:>Here< 题意:有\(N\)头奶牛,每个奶牛有一个重量\(W[i]\),力量\(S[i]\).定义每个奶牛的压扁程度为排在它前面的所有奶牛的总量之 ...

  3. 【THUSC2017】【LOJ2978】杜老师 高斯消元

    题目大意 给你 \(l,r\),求从 \(l\) 到 \(r\) 这 \(r-l+1\) 个数中能选出多少个不同的子集,满足子集中所有的数的乘积是一个完全平方数. 对 \(998244353\) 取模 ...

  4. word 2013 标题设置多级列表

    1.问题 要设置标题为多级列表,批量应用 2.解决 1选标题1 2选标题2 ...以此类推.点确定保存即可

  5. 快速理解js中的call,apply的作用

    今天被人问到js中的call,apply的区别和用途,解释了一番后,想到之前在逼乎上看到一位小伙伴生动形象的解释 本身不难理解,看下MDN就知道了,但是不常用,遇到了,还要脑回路回转下.或者时间长了, ...

  6. ELK 构建 MySQL 慢日志收集平台详解

    ELK 介绍 ELK 最早是 Elasticsearch(以下简称ES).Logstash.Kibana 三款开源软件的简称,三款软件后来被同一公司收购,并加入了Xpark.Beats等组件,改名为E ...

  7. 关于4A系统(我对4A系统的维护的理解)

    4A系统 4A系统是统一安全管理平台解决方案,指认证Authentication.账号Account.授权Authorization.审计Audit,中文名称为统一安全管理平台解决方案.即将身份认证. ...

  8. OAuth2

    OAuth2: 适合To C的应用场景, 比如我们开发一个app, 可以借用微信/微博用户认证开放接口, 达到免注册登陆, 企业内部系统没有必要引入. OAuth2的步骤较多, 角色也较多, 涉及到a ...

  9. D. Vanya and Treasure Codeforces Round #355 (Div. 2)

    http://codeforces.com/contest/677/problem/D 建颗新树,节点元素包含r.c.dis,第i层包含拥有编号为i的钥匙的所有节点.用i-1层更新i层,逐层更新到底层 ...

  10. thinkphp5+vue+iview商城 公众号+小程序更新版本

    thinkphp5+vue+iview商城加分销 源码下载地址:http://github.crmeb.net/u/crmeb 演示站后台:http://demo25.crmeb.net 账号:dem ...