C语言基础知识手册(一)——基本概念与数据类型


前言

  本手册是在学习过C语言的情况下,复习C语言使用的。如果帮助到大家,实属荣幸,如果有不足之处大家也可以在评论中提出来,互相学习互相增长,谢谢大家。

1.基本语法

 1.1-代码框架

  在未编写目标程序时,会存在一个代码框架,在此框架上增添新的内容,就可以完成某些需求,通常基础的框架如下:

#include <stdio.h>
//表示头文件。stdio.h表示standard input output是标准输入输出头文件。
//“< >”是Linux系统自带的头文件,而自己的写的头文件用 " ",比如"my.h" 。
int main()
{
	printf("hello world!!\n"); 
	//“printf”是一个函数,格式化输出函数。
	return 0; 
} 

 1.2-格式化输出

  见名知意,按照自己设置的输出格式输出。

printf(“变量输出符   转义字符……杂七杂八……”,变量表列);

  例:

printf(%d , %f \n……”,a,b,……)

 1.3-格式化输入

  见名知意,按照自己设置的输出格式输入。

scanf(“变量输出符……”,&(取地址符)参数表列……);

例:

scanf(%d %f……”,&a,&c……);scanf(%d:%f……”,&a,&c……);

  在输入时需要按照引号内部的格式输入。

 1.4-变量的输入输出符

  在输入输出语句中,针对不同的数据类型,会有不同的变量表示符号,常用的有“%d”、“%c”、“%f”等。

2.数据类型

 2.1-基本类型

  2.1.1-整型int

  一种常见的用于表示整数的数据类型,对应的输出符号为%d,同时也分长整型、整型、短整型、有符号数和无符号数。
  (short int)/short:短整型,占用字节2,比特数16。
        int:普通整型,占用字节4,比特数32。
  (long int)/long:长整型,占用字节8,比特数32。

  2.1.2-浮点型float

  用于表示小数的数据类型,对应输出符号视情况而定。
  float:单精度浮点型,所占字节4,比特数32,有效数字6~7,对应输出符号为%f。
  double:双精度浮点型,所占字节8,比特数64,有效数字15~16,对应输出符号为%lf。
  long double:比double更长的双精度浮点型所占字节16,比特数64,有效数字18~19,对应输出符号%lf。
  位数保留问题
  对于小数的输出,难免会遇到保留问题。在C语言中对于小数的保留是通过在输出符号添加数字描述来控制其有效输出位数的。比如:

float x = 12.2456;
printf("%6.2f",x);

  在上述例子中,“6.2”中的“6”表示,算上小数点,一共输出的位数,如果不够,则在左端用空格补齐。而“2“则表示,小数点后输出的位数,所以在上上例中,最终的输出结果四舍五入为“ 12.25”。
在这里插入图片描述  那么,保留两位小数也就比较简单了。

  2.1.3-字符型char

描述各种字符、符号的数据类型,输出符号也根据情况而定
  char:描述单个符号、字符的,所占字节1,比特数8,对应输出符号%c。
  其实在计算机中,字符型都是通过ASCII码表示的,只是在输出时使用不同的输出符号,输出不同内容。这里只介绍常用的ASCII码对应关系:
  ‘0’ -‘9’~48-57
  ‘A’-‘Z’~65-90
  ‘a’-‘z’~97-122

  2.1.4-枚举型enum

  enum:一种特殊的基本类型,也算是一种整型。语法结构如下:

enum 枚举名
{
  枚举值1,
  枚举值2,
  枚举值3,
  …………
}枚举变量表列(a,b,c……);

  为什么说“也算是一种整形”,因为其内部首位成员的默认值为0,以后依次的、没有被赋值的枚举成员的值将是前一个枚举成员的值加1得到的。比如

#include <stdio.h>

enum week
{
	Mon,
	Tues,
	Wes,
	Thurs = 10,
	Fri,
	Sat = 2,
	Sun
};

int main()
{
	printf("Mon = %d\n",Mon);
	printf("Fri = %d\n",Fri);
	printf("Fri = %d\n",Sun);
	return 0;
}

  其结果为:
在这里插入图片描述

  2.1.5-指针型

  C语言独有的一种数据类型,可以实现通过地址实现各种操作,常见的数据类型都有指针模式。这里只做简单的描述,后续指针章节会详细的介绍。
  语法格式为:*+any(例:int *a)。

 2.2-构造类型

  2.2.1-数组

  一种常见的构造类型,其在内存中是占用一块连续的存储空间。下面我们只对其种类进行间的介绍,后续的数组篇章会详细介绍。
    一维数组:
  最简单的数组类型,其语法格式通常写为:
  “数组类型 数组名[元素个数]”,例如:int a[3]。
    二维数组:
  最基础的多维数组,语法格式写为
  “数组类型 数组名[行数][列数]”,例如:int a[2][2]。

  2.2.2-结构体

  用户自定义数据类型的一种,语法结构为:

struct 结构体名
{
  数据类型  成员名1;
  数据类型  成员名2;
  …………
}结构体变量表列;(可写可不写,与普通变量一起定义也可以)
例:
struct Stu
{
  int age;
  char sex;
  char* name;
}e1,e2;struct Stu
{
  int age;
  char sex;
  char* name;
};
struct Stu s1;

  2.2.3-共用体

  用户自定义类型的另一种,与语法结构为:

union  Stu
{
  int age;
  char sex;
  char *name;
};

  创建变量的方法与结构体相同,唯一不同的是,共用体内存由其最大的成员决定。

实践小例

  输入25,输出25 hello world。

#include <stdio.h>

int main()
{
	int a;
	
	scanf("%d",&a);
	
	printf("%d hello world\n",a);
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值