人生中处处充满了选择,在相同的时间下,如果你现在好好学习,将来拿一个好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;
}
生活中有些事情必须一直去做,举个简单的例子。比如说吃饭,睡觉,看手机哈哈,这些事情我们每天都要去做,日复一日,这就叫循环
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;
}
是不是感觉非常简单
一个简单的两个数相加求和问题
普通程序来实现
咱来个高级一点儿的,通过函数来实现一下
简单地讲解一下这段代码
通过调用函数,将num1的值传递给x;num2的值传递给y。num1为int型变量,所以当传递num1的时候也必须给x定义为int型变量,对于num2与y也是如此。在这里数据类型一定要做到一一对应
函数的特点就是简化代码,代码复用。
要存储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打印一个是不是会非常的麻烦,通过使用数组可以解决这个问题,下面我们就来简单地实现一下吧
数组第一个元素的下标为0,先访问arr[0],将其打印,数组中有十个元素,循环十次,第十个元素的下表为9,当将arr[9]所对应的元素打印出来之后,循环结束。
简单地介绍一下,后面会重点讲到
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符
exp1 ? exp2 : exp3
逗号表达式
exp1, exp2, exp3, …expn
下标引用、函数调用和结构成员
[] () . ->
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
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语言中:
static是用来修饰变量和函数的
1.修饰局部变量-称为静态局部变量
2.修饰全局变量-称为静态全局变量
3.修饰函数-称为静态函数
未用static修饰,每进行一次循环,n的值都被重新定义为0
使用static修饰后,在整个循环中n的值只被赋值了一次
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;
}
当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;
}
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
static修饰函数与全局变量相似
//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;
}
变量是创建内存中的(在内存中分配空间的),每个内存单元都有地址,所以变量也是有地址的。
取出变量地址如下:
#include
int main()
{
int num = 10;
#//取出num的地址
//注:这里num的4个字节,每个字节都有地址,取出的是第一个字节的地址(较小的地址)
printf("%p\n", &num);//打印地址,%p是以地址的形式打印
return 0;
}
#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;
}
结论:
指针大小在32位平台是4个字节,64位平台是8个字节。
结构体是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语言到此结束,大家如果感觉对自己的学习有帮助的话,就来关注一下吧^ _ ^