1数据类型
不同的类型用来表示生活中用到的各种值
char字符型(注:在C语言中没有字符串型)
short短整型
long长整型
long long比长整型还长的整型
int整型
float单精度浮点数
double双精度浮点数
说到这有的初学者可能会问了,这些类型都是一样大吗,长度是多长呀?
这里我们可以用sizeof关键字来输出一下各类型的长度
printf("%zu\n", sizeof(char));
printf("%zu\n", sizeof(short));
printf("%zu\n", sizeof(long));
printf("%zu\n", sizeof(long long));
printf("%zu\n", sizeof(int));
printf("%zu\n", sizeof(float));
printf("%zu\n", sizeof(double));
由此可以看出每个类型对应的长度分别是
char---1
short---2
long---4
long long---8
int---4
float---4
double---8
我们知道了长度以后每个类型怎末使用呢
从下面我们可以认识到每个类型的使用格式
char ch = 'q';
int a = 99;
float fl = 9.99;
2定义常量和变量
什么是常量什么是变量呢?
他们又有什么区别呢?
在我们生活场景中有很多值是不变的(比如:圆周率,自然对数的底e,税率等)是常量,又有很多值是可变的(比如:温度,紫外线指数,体重等)叫变量;在程序运行过程中常量的值不可修改,并且常量可以是任何数据类型,包括整数、浮点数、字符等而变量的值可以被初始化,并且可以在程序的不同部分被读取、修改。
常量
使用#define预处理器定义常量
#define PI 3.14159
使用const关键字定义常量
const int var = 1;
变量
(1)变量的分类
全局变量:函数外部,整个程序可用
局部变量:函数内部,部分可用
注意:在全局变量和局部变量冲突的时候局部变量优先!
(2)声明变量的格式
int num = 1;
char dah;
(3)作用域和生命周期
作用域
全局变量:整个程序
局部变量:变量所在局部范围
生命周期
全局变量:整个程序的生命周期
局部变量:从进入作用域到出作用域
3字符串和转义字符
“Hello World!”这种由双引号引起来的叫字符串,打印这种写法:
printf("Hello World!\n");
char arr[] = {'H','e','l','l','o',' ','W','o','r','l','d','!','\0'};
printf("%s\n", arr);
细心的小伙伴可能发现了我为什么要在字符串的后面加上“\n”呢?
为了解决这个问题我们可以把这个“\n”去掉试一下
我们可以发现出现了乱码的情况,这是因为“\n”是个转义字符,他的作用是换行和结束字符语句,有其他特殊功能的转义字符还用很多
4注释方法
这里小编介绍两种
(1)c++
//printf("Hello World!\n");
(2)c语言
/*
char arr[] = {'H','e','l','l','o',' ','W','o','r','l','d','!','\0'};
printf("%s\n", arr);
*/
这两种大家根据自己习惯使用就好,但需要注意的是第二种不能嵌套使用哦
5选择语句和循环语句
选择语句
那么这段选择结构图如何用代码表示呢
这里我们假设买酱油记为1;买变形金刚记为2
int invent = 0;
scanf("%d",&invent);
if (1 == invent)
{
printf("得到妈妈表扬\n");
}
else if(2 == invent)
printf("一顿毒打\n");
循环语句
这里先用最简单的while循环
int num1;
scanf("%d", &num1);
int sum = 0;
int i = 1;
while (num1 > i)
{
sum = sum + i;
i++;
}
printf("%d\n", sum);
6函数
使用函数的目的时实现代码简化
int Add(int x, int y)
{
return x + y;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d %d", &num1, &num2);
int result = Add(num1, num2);
printf("%d\n", result);
return 0;
}
7数组
数组就是一组相同类型元素的集合
int arr[10] = { 1,1,1,1,1,1,1,1,1,1 };//定义整型数组
需要注意的是数组的下标是从零开始的
数组的遍历
int i = 0;
int arr[10] = { 1,1,1,1,1,1,1,1,1,1 };
for (i = 0; i < 10; i++)
{
printf("%d\n", arr[i]);
}
8操作符
算术运算符
关系运算符
> ,>= ,< ,<= ,!= , ==
逻辑运算符
&&---逻辑与
||---逻辑或
移位操作符
>> , <<
位操作符
& , ^ , |
赋值操作符
= , += , -= , *= , /= , &= , ^= , |= , >>= , <<=
单目操作符
条件操作符
exp1 ? exp2 : exp3
9关键字
auto - 声明自动变量。
break - 用于中断循环或switch语句。
case - switch语句的一部分。
char - 声明字符类型变量。
const - 声明常量。
continue - 跳过当前循环迭代的剩余部分,并开始下一个迭代。
default - switch语句的一部分,如果没有匹配的case则执行default。
do - do...while循环的一部分。
double - 声明双精度浮点类型变量。
else - if语句的一部分,当if条件不成立时执行else。
enum - 声明枚举类型。
extern - 指定变量或函数的声明是在其他文件中定义的。
float - 声明单精度浮点类型变量。
for - for循环语句。
goto - 无条件跳转语句。
if - 条件语句。
inline - 提示编译器内联函数调用。
int - 声明整型变量。
long - 声明长整型变量。
register - 声明寄存器变量。
restrict - 指示指针指向的数据不会与其它指针重叠。
return - 函数返回语句。
short - 声明短整型变量。
signed - 声明带符号的整型变量。
sizeof - 返回数据类型或表达式的大小。
static - 声明静态变量或函数。
struct - 声明结构体类型。
switch - 开关语句。
typedef - 为已存在的类型创建新的类型名。
union - 声明共用体类型。
unsigned - 声明无符号整型变量。
void - 指示没有类型。
volatile - 声明易变类型变量。
while - while循环语句。
10指针
指针是一个变量,但它存储的是另一个变量的内存地址,而不是数据值本身。
声明指针
type *pointer_name;
初始化指针
int num = 10;
int *p = #
指针动态内存分配
int num = 10;
int* p = #
*p = 90;
指针的大小
指针在32位平台是四个字节,在64位平台是8个字节
11结构体
声明结构体
struct Person {
char name[50];
int age;
float height;
};
访问结构体成员
person1.name = "John Doe";
person1.age = 30;
输出结构体成员
printf("Name: %s, Age: %d\n", person1.name, person1.age);
------------------
(本期完)