IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 重新学习C语言(《c primer plus》)(c和指针)2 -> 正文阅读

[C++知识库]重新学习C语言(《c primer plus》)(c和指针)2

学习方法:见专题系列的第一篇。

温馨提示:自己之前学过c语言,这篇文章的内容不具有总体性和一般性。不建议初学c的人来看,免得误入歧途(大佬随意)。只适用学过c语言并且想快速抓住重点,想快速过一遍经典书籍。希望本文可以抛砖引玉

今日学习内容

c primer plus的第三章(数据和c)

这是书中概括的主要内容(可以不看)

● 关键字——int、short、long、unsigned、char、float、double、_Bool、_Complex、_Imaginary;

● 运算符——sizeof();

● 函数——scanf();

● 整数类型和浮点数类型的区别;

● 如何书写整型和浮点型常数,如何声明这些类型的变量;

● 如何使用printf()和scanf()函数读写不同类型的值

C有多种的数据类型。基本数据类型分为两大类:整数类型和浮点数类型。通过为类型分配的存储量以及是有符号还是无符号,区分不同的整数类型。最小的整数类型是char,因实现不同,可以是有符号的char或无符号的char,即unsigned char或signed char。但是,通常用char类型表示小整数时才这样显式说明。其他整数类型有short、int、long和long long类型。C规定,后面的类型不能小于前面的类型。上述都是有符号类型,但也可以使用unsigned关键字创建相应的无符号类型:unsigned short、unsigned int、unsigned long和unsigned long long。或者,在类型名前加上signed修饰符显式表明该类型是有符号类型。最后,_Bool类型是一种无符号类型,可存储0或1,分别代表false和true

浮点类型有3种:float、double和C90新增的long double。后面的类型应大于或等于前面的类型。有些实现可选择支持复数类型和虚数类型,通过关键字_Complex和_Imaginary与浮点类型的关键字组合(如,double _Complex类型和float _Imaginary类型)来表示这些类型。

整数可以表示为十进制、八进制或十六进制。0前缀表示八进制数,0x或0X前缀表示十六进制数。例如,32、040、0x20分别以十进制、八进制、十六进制表示同一个值。l或L后缀表明该值是long类型,ll或LL后缀表明该值是longlong类型。

在C语言中,直接表示一个字符常量的方法是:把该字符用单引号括起来,如'Q'、'8'和'$'。C语言的转义序列(如,'\n')表示某些非打印字符。另外,还可以在八进制或十六进制数前加上一个反斜杠(如,'\007'),表示ASCII码中的一个字符。

浮点数可写成固定小数点的形式(如,9393.912)或指数形式(如,7.38E10)。C99和C11提供了第3种指数表示法,即用十六进制数和2的幂来表示(如,0xa.1fp10)。

printf()函数根据转换说明打印各种类型的值。转换说明最简单的形式由一个百分号(%)和一个转换字符组成,如%d或%f。

剥离的精华(上面的内容可以不看)

1.总体内容概括(只讲怎么用)

就讲了四个对象(1.整数类型2.浮点数类型3.转义字符4.字符类型)

1.整数类型(就看这一个程序就行)

#include <stdio.h>
int main(void)
{
	int y;//1基本使用这个 
	unsigned int x;//2会使用到这个。 
	long long z;//3实在不行了,就用这个表示实数。 从1到3值越来越大 
	x=100;
	y=100;
	z=5555555555555555; 
	printf("请输入y的值\n");
	scanf("%d",&y);//输入的时候。
	printf("以下三行都是x的十进制八进制和十六进制\n");
	printf("decimal=%d,octal=%o,hex=%x\n",x,x,x);
	printf("decimal=%d,octal=%#o,hex=%#x\n",x,x,x);
	printf("decimal=%#d,octal=%#o,hex=%#x\n",x,x,x);//输出整数十进制的时候%d,八进制的时候%o.十六进制的时候%x 
	printf("y的值为%d\n",y);
	printf("z的值为%lld\n",z); //lld 
	
	
	return 0;
 } 

下面的程序是为了更好比较范围大小。

#include <stdio.h>
int main(void)
{
	unsigned int un=3000000000;
	short end=200;
	long big=65537;
	long long verybig=1234678945621;
	printf("un=%u and not %d\n",un,un);
	printf("end=%hd and %d\n",end,end);
	printf("big=%ld and not %hd\n",big,big);
	printf("verybig=%lld and not %ld\n",verybig,verybig);
	
	return 0;
	
}

2.浮点数类型

#include <stdio.h>
int main(void)
{
	float num;//1
	double num2;//2
	num2=2.2; 
	printf("enter a floating value:");
	scanf("%f",&num);
	printf("小数点形式为%f\n",num);
	printf("指数形式为%e\n",num); 
	printf("十六进制为%a\n",num);
	printf("num2的表示为%f\n",num2);
	
	
	
	return 0;
}

3.字符类型(转义字符被包括)

其实转义字符就很简单。如果是特殊字符的话,就在前面加上\即可,就可以在显示器上显示或者起作用了。

#include <stdio.h>
int main(void)
{
	char i;
	scanf("%c",&i);
	printf("%c is number is %d",i,i);
	
	
}
#include <stdio.h>
int main(void)
{
	char grade='\a';
	printf("%c",grade);
	//还真的可以实现蜂鸣,如果加上for 语句那这个电脑不是崩了 
	
	return 0;
}

2.一些重要的点但是容易让人忽略

1.计算机存储数据是以二进制的形式存储的,对于浮点数(小数)来说是估计的。对于一些算术运算,浮点数损失的精度比起整数来说更多。

2.声明为变量创建和标记存储空间,并为其指定初始值。

?3.两个变量相加减也是可以作为%d的对象。(可以运行一下下面的程序)

#include <stdio.h>
int main(void)
{
	
	int ten=10;
	int two=2;
	printf("doing it right\n");
	printf("%d minus %d is %d\n",ten ,2,ten-two);
	printf("doing it another\n");
	printf("%d minus %d id %d\n",10,2,10-2);
	return 0;
	
	
	
	
}

4.char类型实际存储的是整数而不是字符,计算机使用数字编码来处理字符。这也就说明了下面程序的正确性

#include<stdio.h>
int main(void)
{
	
	/*char item;
	item=66;
	printf("it's asc2值为%c",item);
	*///上面的代码练习告诉我们只要把具体的char字符赋值就可以表示相应的字符了 
	
	char item;
	scanf("%c",&item);
	printf("items form is %c",item); 
	
	
	
	
 } 

5.printf()函数中的转换说明决定了数据的显示方式,而不是数据的存储方式

?

?6

练习题(只写具有代表性的)(但是建议练习的时候建议全部来练习)

2.编写一个程序,要求提示输入一个ASCII码值(如,66),然后打印输入的字符

#include<stdio.h>
int main(void)
{
	
	/*char item;
	item=66;
	printf("it's asc2值为%c",item);
	*///上面的代码练习告诉我们只要把具体的char字符赋值就可以表示相应的字符了 
	
	char item;
	scanf("%c",&item);
	printf("items form is %c",item); 
	
	
	
	
 } 

4.编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。然后,如果系统支持,再打印成p记数法(即十六进制记数法)。按以下格式输出(实际显示的指数位数因系统而异)

#include <stdio.h>
int main(void)
{
	float num;
	double num2;
	num2=2.2; 
	printf("enter a floating value:");
	scanf("%f",&num);
	printf("小数点形式为%f\n",num);
	printf("指数形式为%e\n",num); 
	printf("十六进制为%a\n",num);
	printf("num2的表示为%f\n",num2);
	
	
	
	return 0;
}

5.一年大约有3.156×107秒。编写一个程序,提示用户输入年龄,然后显示该年龄对应的秒数。

#include <stdio.h>
int main(void)
{
	int age;
	float time;
	scanf("%d",&age);
	time=3.156e7*age;
	printf("%f\n",time);
	printf("%e\n",time);
	printf("%a\n",time);
	
	
	
	return 0;
}

代码分析()

这一章相对简单,代码容易,就不写了

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:45:54  更:2022-03-31 23:49:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:02:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码