#C语言-基础篇(Ⅰ)

目录

前言:

一、数据类型与打印数据

1.1 数据类型的使用

1.1.1 数据空间的创建

 1.1.2 打印数据

1.2 计算数据所占空间的大小

1.3 补充:计算机存储单位换算

二、变量与常量

2.1 变量

2.2 常量

 三、字符串、转义字符、注释

3.1 字符串

 3.2 转义字符

 3.3 注释


前言:

       C语言是一种面向对象、较为抽象的语言,在学习过程中主要思考的是思路,怎样如何完成一个过程,又C语言是一种偏向于底层的语言,所以解决问题要从最基础的步骤开始,就像把做题思路每一步都写下来一样,既要晰,又要便于表达。

       虽然C语言的语法限制不是非常严格,对变量等限制并不严格,但是编写代码时我们仍需要有一定的规范性,不仅使代码美观,而且也增强了阅读性和可理解性。

        下面,让我们来见见第一个代码:

#include<stdio.h>

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

以上代码执行的操作是,打印hello world,并换行。

解析代码:

(1)#include<stdio.h>为引用库函数;

(2)int main()为代码运行入口,其返回值0,为int整数类型 ;

(3)printf("")是调用库函数中的打印函数,执行打印“hello world”的命令;其中“\n”为换行命令。

 注意:

(1)一个代码中仅可包含一个main函数,否则编译程序无法进入并执行代码。

(2)代码中return 0与main函数前的int是一起使用的。虽然有void main的形式,但是已经是一种过时的写法了,而且可能会引发一些问题。

(3)用<>号表示引用的库函数,有些时候会用""号来引用。区别在于,<>常用作引用已经发布在网络上常用的库函数,而""用作引用自己写的作为的库函数。

 了解了这些,那么开始正式的学习吧!

一、数据类型与打印数据

引:生活中我们常用各种数字符号来表示各种事物,C语言也一样,它提供了多种数据类型让我们来选择使用。

下面是几个常见的数据类型:

表1_1 数据类型及信息
名称打印符号所占空间大小(单位:字节)
char字符数据类型%c1
short短整型%d2
int整型%d4
long长整型%ld4
long long更长整型%lld8
float单精度浮点数%f4
double双精度浮点数%lf8

说明:

(1)数据类型分无符号型(unsigned)与有符号型(signed),有需要可提前了解

(2)C语言标准规定,long数据类型大小>=int数据类型大小

1.1 数据类型的使用

       我们有了数据类型,那么就可以使用它们了。如何使用呢?那就要考考你数学知识了,在C语言中的整形就是数学中说的整数,而浮点型就是小数;当然,字符型并不在数字中,它是a、b、c等字母以及一些符号,如!、?等。

1.1.1 数据空间的创建

       知道了一个事物所属的数据类型,现在就该将它表示出来了。表示一个数据,首先就要确定它的类型,确定申请空间大小,然后再给数据命名和赋值(创建变量时赋值也称为初始化)。

代码1_1:

#include<stdio.h>

int main()
{
    char ch='A';
    float weight=50.0;
    int number=100;

    return 0;
}

说明:以上代码即为创建某一种数据类型的变量,数据类型+数据名称+=+初始化

 1.1.2 打印数据

       创建好一个数据类型后,接下来就是如何使用了,加减乘除均可,下面我们先了解如何打印数据。

代码1_2:

#include<stdio.h>

int main()
{
    char ch='A';
    float weight=50.0;
    int number=100;

    printf("%c\n",ch);
    printf("ch=%c\n",ch);

    return 0;
}

以上代码执行效果:

A

ch=A

 说明:

打印数据所使用的代码函数为printf函数。从上面代码运行结果来看,是否有所发现呢?

printf函数的使用即:printf("      " ,      );其中引号内为打印的内容,只要输入合法且没有一些特殊符号均可打印;而引号后,则是需要打印的变量,与打印符号配对使用。

        如果条件允许,可以尝试打印剩下几个数据。

补:

       printf函数在打印浮点数小数时,如果没有规定,通常打印为小数点后六位,那么然后规定呢?如下:

#include<stdio.h>

int mian()
{
    float pai=3.14;

    printf("%3.1f\n",pai);

    return 0;
}

(%3.1f)说明:

(1)3  ->  打印整数的位数:若整数位数小于3,则左空位补充;若大于3,则照常打印;

(2).1 ->  打印小数的位数:若小数位数小于1,则小数点后补0;若大于1,则四舍五入。

1.2 计算数据所占空间的大小

代码1_3:

#include <stdio.h>
 
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));

    return 0; 
}

说明:使用库函数中的sizeof函数,即可求得该数据类型所占空间的大小了,见图1_1。

1.3 补充:计算机存储单位换算

        生活中常见的单位有比特位bit、字节byte、kb、mb和gb,除外还有tb、pb......这些单位的进制,除bit与byte为八进位(8bit=1kyte),后均为1024进位(1024byte=1kb...)。

二、变量与常量

2.1 变量

2.1.1 定义

(1)局部变量:定义在代码块{}内的变量;

(2)全局变量:定义在代码块{}外的变量。

说明:

i)局部、全局变量建议不要相同,虽然合法,但容易产生误会,或者产生bug;

ii)局部、全局变量同名时,局部变量优先。

 2.1.2 变量的使用

输入数据-使用输入函数scanf("   ",    ),引号内为输入数据的类型表示,类似于打印字符,引号后则为变量名称,且必须加上取地址符号&。

 2.1.3 作用域和生命周期

作用域:

(1)局部变量:仅在所在代码块内作用;

(2)全局变量:整个代码文件,

          i)如果需要在不同文件使用,需要提前声明:extend(int ~);

生命周期:

(1)局部变量:进入作用域,到出作用域;

(2)全局变量:整个程序。

2.2 常量

2.2.1 字符常量(单纯的数字)

2.2.2 const修饰的常变量

代码2_1:

#include<stdio.h>

int mian()
{
    const int num=4;

    return 0;
}

说明:const修饰表示该变量有了常属性,则num为常变量,后续num的值不可以再被赋值

 2.2.3 #define定义的标识符常量

代码2_2:

#include<stdio.h>

#define Max 10;

int main()
{
    printf("%d\n",Max);

    return 0;
}

其中,Max即为常量,且数值为10.

2.2.4 枚举常量

       枚举,即一一列举,如性别、三原色、星期等。

       枚举关键字:enum。

代码2_3:

#include<stdio.h>

enum Sex {
	MALE,
	FEMALE,
	SECRET,
};

int main() 
{
	printf("%d", MALE);

	return 0;
}

说明:代码2_3中enum Sex就是一次枚举,其中枚举常量均有个各的数值,由上到下,从0开始计数。

 2.2.5 补充:数组

创建数组:数据类型  arr[ ] = {  };  ,其中 [ ]内为数组元素个数,必须为常数,{ }内为数组中元素。

 三、字符串、转义字符、注释

3.1 字符串

定义:由“”双引号引起的一个或多个字符;

字符串所占存储空间大小:字符数+1(“\0”);

打印字符串符号:%s。

代码3_1:

#include<stdio.h>

int main() 
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };

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

	return 0;
}

运行结果:

 说明:

(1)数组arr1中用双引号引用的效果:"abc"<==>{'a','b','c','\0'}

(2)打印字符串时常以‘\0’为结束标志,换句话说,如果没有‘\0’,则程序会一直运行,直到‘\0’为止。

 补:

库函数<string.h>为字符串操作函数库,其中的strlen函数,用于计算字符串的长度的,也是以“\0”为结束标志。例如:strlen(arr1),则其值为3,可自行验证。

 3.2 转义字符

定义:将数字或符号改变其原本含义,如“\0”、“\n”......

以下是较常见的转义字符:

图3_1
\'用于表示字符常量'
\"用于表示字符常量"
\\用于表示一个反斜杠,防止被解析为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符,表示换页,将当前位置移到下页开头
\n换行
\r回车
\t水平制表符(大空格),tab键
\v垂直制表符
\ddd表示1~3个八进制数字,如\10=8,\110...
\xdd

表示2个十六进制数字,如\x30...

补:

strlen("c:\test\32\test.c")其中字符串长度为13.

(1)转移字符为一个字符长度

(2)"\32",表示2个八进制数,表示其对应十进制数作为ASCII码值对应的字符

(3)ASCII表

 3.3 注释

(1)代码中不需要的内容,可删,可注释

(2)难懂的代码需要注释解释

(3)注释符号://(注释内容)或者/*(注释内容)*/ 

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值