从零开始学C语言

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 = &num;

指针动态内存分配

int num = 10;
int* p = &num;
*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);

------------------

(本期完)

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值