本文学自于尚硅谷
关键字与标识符、命名规则
//
// Created by Administrator on 2025/1/7.
//
#include <stdio.h>
/*
* 1.什么是标识符
* C语言中变量、函数、数组名、结构体等要素命名时使用的字符序列,称为标识符。
* >凡是我们可以命名的地方,都称为标识符
*
* 2.标识符的命名规则 -------> 必须遵守
* - 只能由26个英文字母大小写,0-9 或 _ 组成
- 数字不可以开头
- 不可以是关键字,但可以包含关键字
- C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。(会忽略超出的字符)
- 不允许有空格。
- 严格区分大小写字母。比如:Hello、hello是不同的标识符。
*
* 3.标识符的命名建议 ------->可做可不做
* - 在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。如:sum,name,max,year,total 等。
- 不要出现仅靠大小写区分不同的标识符。如:name、Name 容易混淆
- 尽量避免名字中出现数字编号,如value1、value2等,除非逻辑上需要编号。
- 习惯上,所有宏定义、枚举常数、常量(只读变量)全用大写字母命名,用下划线分隔单词。
比如: const double TAX_RATE = 0.08; //TAX_RATE 只读变量
- 系统内部使用了一些下划线开头的标识符(比如两个下划线开头的变量名、一个下划线 + 大写英文字母开头的变量名)。比如,C99 标准添加的类型 `_Bool`。为防止冲突,建议用户尽量避免使用下划线开头的标识符。
- 下划线通常用于连接一个比较长的变量名。如:max_classes_per_student。
- 变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz (驼峰法,小驼峰)。比如:`short stuAge = 20; `,`tankShotGame`。
*
*
*
*
* */
int main(){
int num1 = 10;
//int 1num = 10; //编译不通过
//int return = 10; //不能用关键字命名标识符,可以包含命名
int Return = 10; //编译通过
int A =10;
int a = 20;
printf("a = %d, A = %d\n",a,A);
int _num = 10; //不推荐
int student_age = 10; //下划线的命名方式
int studentID = 1001; //小驼峰的命名方式
return 0;
}
初识变量
//
// Created by Administrator on 2025/1/7.
//
#include <stdio.h>
/*
* 1.变量构成的三要素:数据类型、变量名、变量值
*
* 2.变量的声明格式:数据类型、变量名 = 变量值;
*
* 3.使用变量的注意点
* - C语言中每个变量必须先声明,后使用。
- 不同的数据类型,占用的空间大小不一样。
- 一旦声明,变量的类型就不能在运行时修改。
* 4.变量的作用域
* - 变量的作用域:其定义所在的一对{ }内。
- 变量只有在其`作用域`内才有效。出了作用域,变量不可以再被调用。
- 同一个作用域内,不能定义重名的变量。
- C 语言的变量作用域主要有两种:文件作用域(file scope)和块作用域(block scope)。
* 5.变量按数据类型的分类
* >基本数据类型
* >整型:short\int\long
* >浮点型 float \ double
* >字符型 char
* >后续新增的类型 整型 long long 浮点型 long double 布尔类型 _Bool
* >构造类型
* >指针类型
* >void类型
*
* */
int main(){
//1.1变量的声明
int num1;
int num2;
//1.2变量的赋值(初始化)
num1 = 10;
num2 = 20;
//合并:变量在声明的同时,进行赋值
int num3 = 30;
//2.变量的使用(必须在使用之前对变量进行初始化)
num3 = num3 + 1;
printf("num3 = %d\n",num3);
//反例
// int num4;
// printf("num4 = %d\n",num4);//不能在初始化变量之前使用变量
// int num1 = 100; //同个一个作用域不能命名同名的
// return 0;
for(int i = 1;i <= 10;i++){
printf("i = %d\n",i);
}
}
//其他的函数
//int func(){
// printf("num3 = %d\n",num3); //超出了作用域
//}
整数类型
//
// Created by Administrator on 2025/1/7.
//
#include <stdio.h>
#include <limits.h>
/*
* 整型的使用
*
* 1.short/ int / long / long long
* 以64位编译器为例:
* short: 2个字节
* int : 4个字节
* long :8个字节
* long long :8个字节 (c99)
*2.整型可以被singed 、 unsinged 修饰
*
*3.最常用的整型类型为:int类型。
*
*4.整数型常量,默认为int类型。
*
*5.关于后缀:
* 声明Long类型的后缀是可以用L l结尾
*/
int main(){
int i1 = 10; //忽略了signed
signed int i2 = 10;
i1 = -10;
//声明一个无符号的整数:非负数
unsigned int i3 = 10;
//关于后缀:
long l1 = 122324345353;
long l2 = 23894782374023L;
printf("%d\n", INT_MIN ); // -2147483648
printf("%d\n", INT_MAX ); // 2147483647
return 0;
}
浮点数类型
//
// Created by Administrator on 2025/1/7.
//关于浮点类型的使用
#include <stdio.h>
/*
* 1.常用的类型: float /double /long double
* 2.float 表示数据的范围要大于long类型的范围
* 3.浮点型变量不能使用signed或unsigned修饰符。
* 4.最常用的浮点类型为:double 类型,因为精度比float高。
* 5.浮点型常量,默认为 double 类型。
* 6.关于后缀
* 如果定义float类型,这需要以F f 作为后缀
* 如果定义long double类型,这需要以L l 作为后缀
*/
int main(){
double d1 = 12.3;
double d2 = d1 + 2.3; //2.3 是double类型
float f1 = 12.3F;
float f2 = 12.3f;
long double d3 = 12.3l;
//有人用温度计测量出用华氏法表示的温度(如64°F),今要求把它转换为以摄氏法表示的温度(如17.8℃)。转换的公式为:$c = \frac{5}{9}(f - 32)$。
//
//其中,f 代表华氏温度,c 代表摄氏温度。
float f, c; //定义f和c分别表示华氏温度、摄氏温度
f = 64.0; //指定f的值
c = (5.0 / 9) * (f - 32); //利用公式计算c的值
printf("f=%f\nc=%f\n", f, c); //输出c的值
return 0;
}