初始C语言

目录

什么是C语言?

第一个c语言程序

数据类型

局部变量和全局变量

变量的作用域(scope)和生命周期

常量

字符串和转义字符

 选择语句

循环语句

函数

数组

操作符

常见关键字(C语言内置的)

define 定义常量和宏

指针

结构体


什么是C语言?

C语言是一门计算机语言

计算机语言是是什么呢?

人和计算机交流的语言

C/C++/JAVA/python

语言的发展:

二进制语言

电脑(硬件)-通电-正电/负电

                                  1      0

第一个c语言程序

#define _CRT_SECURE_NO_WARNINGS 1


#include <stdio.h>

int main() //主函数-程序的入口-main函数有且仅有一个
{ 

	printf("hello world\n");//库函数 使用时需要引头文件

	return 0;
}

数据类型

创建数据类型就是申请内存空间

计算机中的单位

bit -- 比特位

byte -- 字节 一字节8个bit

2 byte =16 bit  能存放2^16 的二进制数字

kb 1024 mb 1024 gb 1024 tb  1024 pb

int main() 
{
	char ch = 'a';
	printf("%c\n", ch);//%c -- 打印字符格式的数据

	int age = 20;
	printf("%d\n", age);//%d -- 打印整形十进制的数据格式
	return 0;

}

局部变量和全局变量

int num2 = 20;//全局变量-定义在代码块({})之外的变量

int main()
{
	int num1 = 10;//局部变量-定义在代码块({})内部
	return 0;
}
int a = 100;
int main()
{
	int a = 10;
	//局部变量和全局变量的名字建议不要相同-容易误会,产生bug
	//局部变量和全局变量的名字相同的时候,局部变量优先
	printf("%d\n", a);
	return 0;
}

变量的作用域(scope)和生命周期

局部变量的作用域是变量所在的局部范围。

全局变量的作用域是整个工程。

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

全局变量的生命周期是:整个程序的生命周期。

int main()
{ 
	int num1 = 0;
	int num2 = 0;

	scanf("%d%d", &num1, &num2);//取地址符&

	int sum = 0;
	sum = num1 + num2;

	printf("sum=%d\n",sum);


	return 0;

}

常量

C语言中的常量和变量的定义的形式有所差异。

C语言中的常量分为以下几种:

  • 字面常量
  • const 修饰的常量
  • #define 定义的标识符常量
  • 枚举常量

//枚举-一一列举

//性别:男,女,保密
//三原色:红,黄,蓝
//星期:1,2,3,4,5,6,7

//枚举关键字-enum

enum Sex
{
    MALE,
	FEMALE,
	SECRET
};
// MALE,FEMALE,SECRET - 枚举常量
int main()
{
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);

	return 0;
}


字符串和转义字符

 注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是接受标志,不算作字符串内容。

int main()
{
	char arr1[] = { "abc" };
	//"abc" -- 'a' 'b' 'c' '\0'-- '\0'字符串的结束标志

	char arr2[] = { 'a','b','c' ,0};


	printf("%s\n", arr1);
	printf("%s\n", arr2);
	system("color F0");

	return 0;
}

 

 选择语句

int main()
{
	int input = 0;
	printf("加入比特\n");
	printf("你要好好学习吗?(1/0)>: ");
	scanf("%d", &input);

	if (input == 1)
		printf("好offer\n");
	else
		printf("收废品\n");
	return 0;
}

循环语句

  • while语句
  • for语句
  • do ... while语句

int main()
{
	int line = 0;
	printf("加入比特\n");
	while (line < 5000) {
		printf("敲一行代码%d\n",line);
		line++;
	}
	if(line>=5000)
	  printf("好offer\n");
	
	return 0;
}

函数

int Add(int x, int y)
{
	int z = x + y;
	return z;
}


int main()
{
	int a = 0;
	int b = 0;
	printf("请输入数据\n");
	scanf("%d%d", &a, &b);

	int sum = 0;
	sum = Add(a, b);

	printf("sum=%d\n", sum);

	return 0;
}

数组

int main()
{
	int arr[5] = { 1,2,3,4,5 };

	for (int i = 0; i < 5; i++) {
		printf("%d ", arr[i]);
	}

	return 0;
}

操作符

算数操作符

+   -   *  /  %

移位操作符

>>  <<

位操作符

&  ^   |

int main()
{
	//(2进制)位操作
	//& 按位与 并 在C语言中 0为假 非0 为真 
	//| 按位或  
	//^ 按位异或
	//int a = 3;//011
	//int b = 5;//101
	//int c = a & b;

	int a = 3;//011
	int b = 5;//101
	int c = a ^ b;
	//异或的计算规律:
	//对应的二进制位相同,则为0;
	//对应的二进制位不同,则为1;
	printf("%d\n", c);
	return 0;
}

赋值操作符

=  +=  -=  *=   /=  &=   ^=   |=   >>=    <<=

单目操作符

int main()
{
	int arr[10] = { 0 };
	int sz = 0;
	//sizeof  计算的是变量/类型所占空间的大小,单位是字节
	//计算数组的元素个数
	//个数=数组总大小/每个元素的大小
	sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n", sz);

	return 0;
}

int main()
{
	int a = 10;
	int b = 0;
	//b = a++;//10 11   后置++  先执行,再运算
	b = ++a;// 11  11  前置++   先运算,在执行
	printf("%d %d\n", a, b);

	return 0;
}

关系操作符

>

>=

<

<=

!=          用于测试“不相等”

==         用于测试“相等”

逻辑操作符

&&     逻辑与

||       逻辑或

条件操作符

exp1 ?  exp2  : exp3

表达式 exp1 为真, 则执行表达式exp2;  若为假 , 则执行表达式 exp3

int main()
{
	int a = 20;
	int b = 10;
	int max = 0;

	max=(a > b ? a : b);

	if (a > b)
		max = a;
	else
		max = b;

	return 0;
}

逗号表达式

exp1,exp2,exp3,..... expN

下标引用、函数调用和结构成员

[ ]  ( )    .   ->

常见关键字(C语言内置的)

int main()
{
	//typedef  - 类型定义 -类型重定义
	//unsigned 无符号的
	typedef unsigned int u_int;
	unsigned int num = 20;
	u_int num2 = 20;
	return 0;
}

void test()
{
	//static 修饰局部变量   局部变量的生命周期变长
	//static 修饰全局变量   改变了作用域- 让静态的全局变量只能在自己所在的源文件内部使用,
	//出了源文件就没法再使用了


	//static 修饰函数
	//改变了函数的链接属性
	//外部链接属性 -> 内部链接属性 (外部文件无法通过声明来使用)
	static int a = 1;
	a++;
	printf("a=%d\n", a);
}
int main()
{

	int i = 0;
	while (i < 5) {
		test();
		i++;
	}
	return 0;

}

define 定义常量和宏

//宏的定义
#define MAX(X,Y) (X>Y?X:Y);
int main()
{
	int a = 10;
	int b = 20;
	//宏的方式
	int max = MAX(a, b);
	//max=MAX(a>b?a:b)
	printf("max=%d\n", max);
	return 0;
}

指针

内存

一个内存单元以字节为单位

 int main()
{   
	int a = 10;

	int* p = &a;

	*p = 20; //* - 解引用操作符
	//printf("%p\n", &a);
	//有一种变量是存放地址的-指针变量
	//printf("%p\n", p);
	printf("%d\n", a);
	return 0;
}

指针变量的大小

指针大小在32位平台是4个字节,64位平台是8个字节。

int main()
{
	char a = 'c';
	char* pc = &a;
	*pc = 'e';
	printf("%c\n", a);
	printf("%d\n", sizeof(pc));
	return 0;
}

int main()
{
	double a = 5.2;
	double* pa = &a;
	*pa = 5.3;
	printf("%lf\n", *pa);
	printf("%lf\n", a);

	return 0;
}

结构体

int main()
{
	//利用结构体类型 - 创建一个该类型的结构体变量
	struct Book b1 = { "C语言程序设计",55 };

	struct Book* pb = &b1;
	// . 结构体变量.成员
	// -> 结构体指针 ->成员
	printf("书名:%s\n", pb->name);
	printf("价格:%d元\n",pb->price);

	/*printf("书名:%s\n", (*pb).name);
    printf("价格:%d元\n",(*pb).price);*/

	/*printf("书名:%s\n", b1.name);
	printf("价格:%d元\n", b1.price);

	b1.price = 10;
	printf("修改后的价格:%d元\n", b1.price);*/
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值