【C语言篇(初级)】初识C语言——下

文章目录

    • 6.选择语句
    • 7.循环语句
    • 8.函数
    • 9.数组
    • 10. 操作符
    • 11. 常见关键字
      • 11.1 关键字 typedef
      • 11.2 关键字static
        • 11.2.1 修饰局部变量
      • 11.2.2 修饰全局变量
    • 12. #define 定义常量和宏
    • 13. 指针
      • 13.1 内存
      • 13.2 指针变量的大小
    • 14. 结构体

6.选择语句

人生中处处充满了选择,在相同的时间下,如果你现在好好学习,将来拿一个好offer,走上人生巅峰;如果不好好学习,毕业即等于失业,回家种地,这就是选择!

C语言中最常用的选的语句:if…else… 语句
下面用它来写一段简单的代码

#include 
int main()
{
int coding = 0;
printf("你会去敲代码吗?(选择1 or 其他):>");//选择1or0
scanf("%d", &coding);
if(coding == 1)
{
prinf("坚持,你会有好offer\n");//选择1
}
else
{
printf("放弃,回家种地\n");//选择其他
}
return 0;
}

7.循环语句

生活中有些事情必须一直去做,举个简单的例子。比如说吃饭,睡觉,看手机哈哈,这些事情我们每天都要去做,日复一日,这就叫循环

C语言中通过什么实现循环呢?
1.while语句
2.for语句
3.do…while语句

下面我们先来简单的了解一下while语句

//while循环的实例
#include 
int main()
{
printf("加入创新班\n");
int line = 0;
while(line<=20000)
{
line++;
printf("我要努力学习\n");
}//不断地去学习
//出来之后
if(line>20000)//累计了很多技术经验
printf("好offer\n");
return 0;
}

是不是感觉非常简单

8.函数

一个简单的两个数相加求和问题

普通程序来实现

【C语言篇(初级)】初识C语言——下_第1张图片

咱来个高级一点儿的,通过函数来实现一下

【C语言篇(初级)】初识C语言——下_第2张图片

简单地讲解一下这段代码
通过调用函数,将num1的值传递给x;num2的值传递给y。num1为int型变量,所以当传递num1的时候也必须给x定义为int型变量,对于num2与y也是如此。在这里数据类型一定要做到一一对应

函数的特点就是简化代码,代码复用。

9.数组

要存储1-10的数字,怎么存储?

C语言中给了数组的定义:一组相同类型元素的集合

9.1数组的定义

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

9.2 数组的下标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。
比如:

int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9

观看下图更加直观
在这里插入图片描述
9.3 数组的使用
如果我们想将1~10中的数字一一打印出来,一下用printf打印一个是不是会非常的麻烦,通过使用数组可以解决这个问题,下面我们就来简单地实现一下吧

【C语言篇(初级)】初识C语言——下_第3张图片

数组第一个元素的下标为0,先访问arr[0],将其打印,数组中有十个元素,循环十次,第十个元素的下表为9,当将arr[9]所对应的元素打印出来之后,循环结束。

10. 操作符

简单地介绍一下,后面会重点讲到

【C语言篇(初级)】初识C语言——下_第4张图片
【C语言篇(初级)】初识C语言——下_第5张图片

逻辑操作符

&& 逻辑与
|| 逻辑或

条件操作符

exp1 ? exp2 : exp3

逗号表达式

exp1, exp2, exp3, …expn

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

[] () . ->

11. 常见关键字

auto break case char const continue default do double else enum
extern float for goto if int long register return short signed
sizeof static struct switch typedef union unsigned void volatile while

11.1 关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。

比如:

#include
int main()
{
	int a = 10;
	typedef int sum;//给int起了一个别名叫做sum,此时sum与int地功能一样,都定义整形变量
	sum b = 9;//sum b=9等价于int b = 9
	printf("%d %d\n", a, b);
	return 0;
}

【C语言篇(初级)】初识C语言——下_第6张图片

11.2 关键字static

在C语言中:
static是用来修饰变量和函数的
1.修饰局部变量-称为静态局部变量
2.修饰全局变量-称为静态全局变量
3.修饰函数-称为静态函数

11.2.1 修饰局部变量

【C语言篇(初级)】初识C语言——下_第7张图片
未用static修饰,每进行一次循环,n的值都被重新定义为0
【C语言篇(初级)】初识C语言——下_第8张图片
使用static修饰后,在整个循环中n的值只被赋值了一次

11.2.2 修饰全局变量

zhi bo.c文件中

int g_val = 2018;

day1.c文件中

extern int g_val;
//day1.c文件使用zhi bo.c文件中的变量或函数时,需要用extern来声明一下
//这样就可以使用g_val了
int main()
{
	printf("%d\n", g_val);
	return 0;
}

我么来看一下结果
【C语言篇(初级)】初识C语言——下_第9张图片
结果与我们想象中的一样,正常输出呗

当int g_val被static修饰的时候再来看一下

zhi bo.c文件中

static int g_val = 2018;

day1.c文件中

extern int g_val;
int main()
{
	printf("%d\n", g_val);
	return 0;
}

【C语言篇(初级)】初识C语言——下_第10张图片
编译器直接报错,说g_val无法解析,编译器不认识他

  • 结论

一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。

static修饰函数与全局变量相似

12. #define 定义常量和宏

//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))//计算x+y的数值
#include 
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = MAX*ADD(2, 3);//标识符常量MAX可以直接使用,这里MAX就代表1000
printf("sum = %d\n", sum);
return 0;
}

13. 指针

13.1 内存

  1. 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
  2. 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个节
  3. 为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址
    【C语言篇(初级)】初识C语言——下_第11张图片

变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。
取出变量地址如下:

#include 
int main()
{
int num = 10;
&num;//取出num的地址
//注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
printf("%p\n", &num);//打印地址,%p是以地址的形式打印
return 0;
}

13.2 指针变量的大小

#include 
//指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(short *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
return 0;
}

【C语言篇(初级)】初识C语言——下_第12张图片
【C语言篇(初级)】初识C语言——下_第13张图片

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

14. 结构体

结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。

比如描述学生,学生包含: 名字+年龄+性别+学号 这几项信息。

这里只能使用结构体来描述了。

例如:

struct Stu
{
char name[20];//名字
int age; //年龄
char sex[5]; //性别
char id[15]//学号
};

结构体的初始化:

int main()
{
	//打印结构体信息
	struct Stu s = { "张三", 20, "男", "20180101" };
	//.为结构成员访问操作符
	printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
	//->操作符
	struct Stu* ps = &s;
	printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps -> id);
	//*操作符,*pa指的就是s,(*ps).name就类似于s.name
	printf("name = %s age = %d sex = %s id = %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).id);
	return 0;
}

初识C语言到此结束,大家如果感觉对自己的学习有帮助的话,就来关注一下吧^ _ ^

你可能感兴趣的:(c语言,开发语言)