易上手的C语言(零基础上,入门级C)---了解第一个C程序--函数


前言

 对于刚入门的编程小白,你可能会有很多问题和疑惑,不知从哪里下手,这时你需要有全局的意识,认识到C语言的大概知识,这有利于你更好的了解C基础,让C变得简单易懂。
 这里的知识是对整个C语言基础知识的介绍,对知识点只是简单的介绍,并不会详细的介绍,为了让入学的编程者对C有一个大概的认识,以后我会通过后面的文章来详细介绍每个重要的知识点.
 通过阅读本篇文章,相信你就可以理解并阅读一些别人的代码,自己也可一些简单的代码.


本文开始

本文重点

  • 详细了解第一个C语言程序
  • 数据类型的认识
  • 变量与常量的认识
  • 字符串与转义字符
  • 注释的使用
  • 初识选择语句
  • 初识循环语句
  • 初识函数

一、快速上手第一个C程序

1)第一个程序

#include<stdio.h>
int main()
{
	printf("hello word\n");
	//""双引号里面包含的是字符串
	return 0;
}

【注释】:
 头文件含义:stdio -> std intput output(标准输入输出)
  .h header


 main是主函数,在一个程序中仅有一个(main不能重复出现);
 a:main还是一个程序的入口()在执行时先进入主函数的第一行,图示如下

在这里插入图片描述


 b:int与return 相关联

在这里插入图片描述

 c: # 为预处理指令,预处理指令开头规定写 #.
例如:#include #define

2)
a:不标准的写法
没有返回值类型不完整

main()
{
	printf("hello word\n");
	return 0;
}

b:不建议的写法(太过古老)

void main()
{
    printf("hellow word\n");
    return 0;
}

二、对于C数据类型的认识

存储数据的类型多样,正好满足生活中各样的值,让我们来了解一些吧!
测量数据类型大小使用 sizeof(类型或变量);
单位:字节
sizeof 为操作符

1、char
 字符型:一个字节
2、short
 短整型:两个字节
3、int
 整型:四个字节
4、long
 长整型:四个整形
5、long long
 长长整形:八个字节
6、float
 单精度浮点型:四个字节
7、double
 双精度浮点型:八个字节

#include<stdio.h>
int main()
{
	printf("%d\n", sizeof(char));//1
	printf("%d\n", sizeof(short));//2
	printf("%d\n", sizeof(int));//4
	printf("%d\n", sizeof(long));//4
	//C语言标准规定
	//sizeof(long)>=sizeof(int)
	//不同标准的平台下long的大小不同,
    //有可能4个字节也有可能8个字节
	printf("%d\n", sizeof(long long));//8
	printf("%d\n", sizeof(float));//4
	printf("%d\n", sizeof(double));//8
	return 0;
}

打印用%d,打印的是十进制的整数
%c:打印char类型
%f:打印float类型
%lf:打印double类型
%zu:专门打印sizeof的返回值

好奇小白可能会问,C语言有字符串类型?
 其实C语言中没有字符串类型,一般存储字符都会使用字符数组(以后会了解是存放字符的数组),所以一般来说并没有单独定义字符串类型.

数据单位的认识

只知道数据类型还不够呀!我们也需要了解数据的单位,为进步了解数据的内存做好铺垫!!!

1)、最小单位bit(存放二进制数)
1byte = 8bit
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB

三、变量的认识

1、定义变量的方法
类型名+变量名=赋给变量的初始值
 int a=0;
 定义变量也可以不赋值,但内存中会给随机值
 int a;

2、变量的命名
 变量只能是由数字,字母,下划线组成
 变量开头必须是字母或者下划线(Byte/_bate),不能是数字开头(2te)
 变量名不能使用关键字

3、变量分类

[注]{ }内部称为局部变量,{ }外部称为全局变量

 a:局部变量
{ }花括号内,当定义变量时就是生命周期的开始,出花括号时生命周期结束.

#include<stdio.h>
int main()
{
   {
       int a=10;    
       printf("%d\n",a);//1
   }
      printf("%d\n",a);//2
   return 0;
}

  • 上述代码a出花括号时就会被销毁,第2个a根本打印不出来,编译器会报错!

在这里插入图片描述

  b: 全局变量:生命周期作用与整个工程

  • 两个a全部都能打印,a在这里作为全局变量,那个函数中使用都可以打印a的值
int a=20;
void text()
{
    printf("%d\n",a);2
}

#include<stdio.h>
int main()
{
       text();
       printf("%d\n",a);//1
      
   return 0;
}

当局部变量遇见全局变量时:实行局部优先原则

int a=20;//全局变量
#include<stdio.h>
int main()
{
       int a=10; //局部变量  
       printf("%d\n",a);//10
   return 0;
}

说明:

  • 作用域:限制代码中名字的可用范围
  • 生命周期:变量的创建到变量销毁的时间段

四、常量的认识

  1. 字面常量(直接写)
    整形,浮点型,字符,字符串
    34 , 3.14 , ‘a’ , “abcdef”

  2. const修饰的常变量( 具有常属性的变量,本质为变量 )
    const int n = 10; --修饰的n常量,但不能修改
    const为什么修饰常变量呢?让我们来看看吧!
    例:int a[常量表达式];
    数组里放的是常量表达式,如果放入n(int a[n])就执行错误,说明const修饰常变量.

  3. #define定义的标识符常量
    #define MAX 10
    修饰的MAX在程序中不可修改

标识符的定义也为程序的可操作性更加便捷
对于一个程序如果你需要使用10这个值可以直接使用MAX,当程序需要20时,直接更改标识符常量就可让程序中所以MAX更改为10,让程序更方便操作.

  1. 枚举常量enum
  • 枚举常量默认从0开始,当打印时从0开始打印,往后一次+1,第二个打印1…
enum Sex
{
   MALE,
   FEMALE;//enum包含的都是枚举常量
};
#include<stdio.h>
int main()
{
  printf("%d\n",MALE);//0
  printf("%d\n",FEMALE);//1
   //枚举常量默认从0开始,往下的枚举常量是1,2,3...一次增1
  return 0;
}

五、字符串与转义字符

  1. 字符串
    字符串:由双引号(" ")引起了的内容称为字符串

样例:“hello word”

[注] 字符串的结束标志\0,每个字符串默认带有\0
在计算字符串长度时,只计算\0之前的字符

为什么要特意强调字符串的结束标志\0呢?让我们用下面代码看一看吧!

#include<stdio.h>
int main()
{
	char arr1[] = "abcd";
	char arr2[] = { 'a','b','c','d' };
    char arr3[] = {'a','b','c','d','\0'};
	printf("%s\n",arr1);
	printf("%s\n", arr2);
    printf("%s\n",arr3);
	return 0;
}

在这里插入图片描述

  • 由上述代码结果可知arr2 越界访问 出现错误,这是由于字符串没有\0作为结束标志,编译器无法停止而导致的错误.但是加上\0就可以避免错误了,所以要 重视\0 哦.

2.转义字符
顾名思义,由名字就可知道,可以改变原来字符的意思
让我们看看如下代码实践一下吧!

#include<stdio.h>
int main()
{
	printf("\code-date\\text.c\n");
	return 0;
}

在这里插入图片描述
看到结果怎么样,和你的想法一致?它就是转义字符的妙处.
说了怎么多,让我再来分享一些转义字符吧!

转义字符

  • \?: 在比较老的版本编译器,可能会被解析成三字母词
    例如:??) => ]
  • \ ’ :用来表示字符常量 ’
  • \ " :表示字符串内部的双引号
  • \ :表示一个反斜杠
  • \a:警告字符
  • \b:退格符
  • \f:进纸符
  • \n: 换行
  • \r: 回车
  • \t: 水平制表符
  • \v:垂直制表符
  • \ddd:ddd表示三个8进制的数字
    例如:\130 =>X
  • \xdd:dd表示两个十六进制数字
    例如:\x30 => 0

解释 :\ddd与\xdd

1.\ddd 三个d表示 1~3个8进制数字
可表示为:\66 ,\2 ,\130
2.\xdd \x说明是十六进制数字,
可表示为:\x30
你可能好奇什么是8进制,什么是十六进制?让我们接着shuom?
我们最常见的是十进制,以十进制为例:
十进制:0 1 2 3 4 5 6 7 8 9(满10进1)
八进制:0 1 2 3 4 5 6 7(满8进1)
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F(满16进1)

六、注释的使用

注释有两种:

  • C语言注释风格://
    有很大缺陷不能嵌套使用,它终会找里的最近的为一对,把包含的内容注释起来,余下的就会出现错误
  • C++风格注释://…
    可以嵌套使用,十分方便,我推荐大家使用

七、初识选择语句

代码的实现联系着生活,生活中我们面临很多选择.

是努力学习,还是直接躺平呢?

这里我们就用代码实现一下吧!

看你如何选择!

这里只是简单介绍一下选择,对选择的知识只是点的为止.

#include<stdio.h>
int main()
{
	int code;
	printf("好好学习,干代码,可能成功   干?选择(0or1)>\n");
	scanf("%d", &code);
	if (code == 1)
	{
		printf("坚持到成功,找到工作!!!\n");
	}
	else
	{
		printf("回家种地...\n");
	}
	

	return 0;
}

八、初识循环语句

循环是指一直重复做的事情,像我们需要日复一日的学习,日复一日的敲代码.

让我来介绍一下C语言中的循环:

  • while
  • do while
  • for

这里以while循环为例,对循环的知识只是点到为止,以后的文章会为大家详细介绍.

#include<stdio.h>
int main()
{
	printf("好好学习编程,干代码\n");
	int line = 0;
	while (line < 100000)
	{
		//行数小于100000继续干代码
		line++;
		printf("我要干代码\n");
	}
	if (line = 100000)
	{
		printf("好offer\n");
	}
	return 0;
}

九、初识函数

函数是C语言把函数独立,方便其它调用函数

我们可以在主函数里面求两个数的和,那调用函数怎么做呢?让我们来看看吧!

#include<stdio.h>
//创建的求和函数
int add(int n1, int n2)//整型传递整型接收
{
    int s = 0;
    s = n1 + n2;
    return s;//返回值
}
int main()
{
    int n1 = 3;
    int n2 = 5;
    //调用函数求值
    int ret = add(n1, n2);
    printf("%d\n", ret);
    return 0;
}

通过调用函数,调用函数的返回值返回到主函数,完成调用再把值打印出来.

在这里插入图片描述

  • 这是基本的函数调用,就是你需要的是什么函数,先在主函数中声明,在主函数外部定义,让这个函数执行你想要的功能(例如上述代码让其执行加法功能),函数的调用大大简化了主函数里面的内容,让代码的思路更加清晰,如果都写在主函数中,你可能分不清到底在执行什么.这只是简单的介绍函数的功能,以后的文章会详细介绍函数的作用,如果对你有帮助记得关注我来看哦!

总结

 本篇文章介绍了第一个程序每部分的详解,了解C语言的大概知识,基本的C知识希望给编程初学者一些借鉴,希望能帮助你们进一步掌握C的基础知识。如果对你有帮助记得三连点赞!!!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值