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 primer plus -> 正文阅读

[C++知识库]C primer plus

C++在C语言的基础上嫁接了面向对象编程工具(面向对象编程是一门哲学,它通过对语言建模来适应问题,而不是对问题建模以适应语言)。

与大多数语言不同的是,C语言比其他语言更依赖库,因此需要一个标准库。

程序清单1.1 C源代码示例

#include<stdio.h>
int main(void)
{
	int dogs;
	printf("How many dogs do you have?\n");
	scanf("%d",&dogs);
	printf("So you have %d dog(s)!",dogs);
	return 0;
} 

在Windows和Macintosh提供的集成开发环境(IDE)中,用户可以在IDE中通过选择菜单中的选项或按下特殊键来编辑和执行C程序。最终生成的程序可通过单击或双击文件名或图标直接在操作系统中运行。

我使用的是dev-c++,生成可执行文件1.exe,存储在桌面上,双击即可运行。
在这里插入图片描述

传统上,可执行文件是可运行的程序。在常见环境(包括Windows命令提示符模式、UNIX终端模式和Linux终端模式)中运行程序要输入可执行文件的文件名,而其他环境可能要运行命令(如,在VAX中的VMS[2])或一些其他机制。

可执行文件是扩展名为exe的文件。在win10操作系统中,选择win+R,然后输入cmd,进入命令提示符模式,我的可执行文件1.exe存储在桌面上,所以输入cd转到桌面,然后输入我的可执行文件名1.exe即可得到同上的结果。
在这里插入图片描述

磨刀不误砍柴工,应该养成先规划再动手编写代码的好习惯,用纸和笔记录下程序的目标和设计框架。这样在编写代码的过程中会更加得心应手、条理清晰。

如果没有合理的规划,写出来的代码会十分混乱。

程序清单1.2 C程序

#include<stdio.h>
int main()
{
	printf("Concrete contains garvel and cement.\n");
	return 0;
} 

用C语言编写程序时,编写的内容被储存在文本文件中,该文件被称为源代码文件(source code file)。

win10自带的记事本也可以编写C的源代码。源代码存储在文本文件中。但是源代码文件需要编译链接才能形成可执行的扩展名为exe的文件。
编译的过程将源代码转换成中间代码,链接的过程将中间代码与其他代码合并形成可执行文件。
源代码生成目标代码,最后生成可执行代码。这里的目标代码虽然已经是机器语言代码,但是没有充当着程序和操作系统之间的接口的启动代码和库函数

在linux操作系统上编译,Ubuntu 20.04.3 LTS
在这里插入图片描述
获得源文件:
使用vim命令进入编辑器,然后i表示insert,输入源代码即可。按住esc:wq表示退出并保存。
获得可执行文件:
gcc -o 1 1.c可执行文件名默认为a.out,你也可以在-o后面为可执行文件命名。
执行文件:
./1
在这里插入图片描述

在这里插入图片描述

复习题

1.对编程而言,可移植性意味着什么?
2.解释源代码文件、目标代码文件和可执行文件有什么区别?
3.编程的7个主要步骤是什么?
4.编译器的任务是什么?
5.链接器的任务是什么?

GCC和最新发布的版本
C标准函数库

程序清单2.1 first.c程序

在这里插入图片描述
在这里插入图片描述

所有的C编译器软件包都提供stdio.h文件。该文件中包含了供编译器使用的输入和输出函数(如,
printf())信息。该文件名的含义是标准输入/输出头文件。通常,在C程序顶部的信息集合被称为头文件

int是main()函数的返回类型。这表明main()函数返回的值是整数。返回到哪里?返回给操作系统。

操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称。
标准标签都以一个或两个下划线字符开始,如库标识符。这样的标识符都是保留的。这意味着,虽然使用它们没有语法错误,但是会导致名称冲突。
C语言的名称区分大小写,即把一个字母的大写和小写视为两个不同的字符。因此,stars和Stars、STARS都不同。

对于某些操作系统(包括Linux和UNIX),return语句有实际的用途。

程序清单2.2 fathm_ft.c程序

在这里插入图片描述
在这里插入图片描述

程序清单2.3 two_func.c程序

在这里插入图片描述

在这里插入图片描述

C标准建议,要为程序中用到的所有函数提供函数原型。标准include文件(包含文件)为标准库函数提供可函数原型。

定位语义错误的另一种方法是:在程序中的关键点插入额外的printf()语句,以监视制定变量值的变化。通过查看值的变化可以了解程序的执行情况。对程序的执行满意后,便可删除额外的
printf()语句,然后重新编译。

当程序出现错误时,可以一步一步查看程序的执行情况,或者在程序中间添加语句检查执行情况,或者调试都可以。
跟踪程序状态的方法有三种,一是自己逐步计算,二是在关键节点插入printf()语句,三是直接使用编译器自带的调试器。

如果使用关键字不当(如,用关键字作为变量名),编译器会将其视为语法错误。还有一些保留标识符(reserved identifier),C语言已经指定了它们的用途或保留它们的使用权,如果你使用这些标识符来表示其他意思会导致一些问题。因此,尽管它们也是有效的名称,不会引起语法错误,也不能随便使用。保留标识符包括那些以下划线字符开头的标识符和标准库函数名,如printf()。

编程练习

1.编写一个程序,调用一次 printf()函数,把你的姓名打印在一行。再调用一次 printf()函数,把你的姓名分别打印在两行。然后,再调用两次printf()函数,把你的姓名打印在一行。

 #include <stdio.h> 
 
 int  main() 
 { 
	printf("临风听暮蝉\n");
	printf("临风\n听暮蝉\n");
	printf("临风");
	printf("听暮蝉");	
 	return 0; 
 } 

在这里插入图片描述
2.编写一个程序,打印你的姓名和地址。

 #include <stdio.h> 
 
 int  main() 
 { 
	printf("临风 听暮蝉\n");
	printf("火星\n");	
 	return 0; 
 } 

在这里插入图片描述
3.编写一个程序把你的年龄转换成天数,并显示这两个值。这里不用考虑闰年的问题。

 #include <stdio.h> 
 
 int  main() 
 { 
 	int age=300;
	printf("年龄:%d\n天数:%d",age,age*365);
 	return 0; 
 } 

在这里插入图片描述
4.编写一个程序,生成以下输出:
For he’s a jolly good fellow!
For he’s a jolly good fellow!
For he’s a jolly good fellow!
Which nobody can deny!
除了 main()函数以外,该程序还要调用两个自定义函数:一个名为jolly(),用于打印前 3 条消息,调用一次打印一条;另一个函数名为deny(),打印最后一条消息。

 #include <stdio.h> 
 void jolly(void);
 void deny(void);
 int  main() 
 { 
 	jolly();
 	jolly();
 	jolly();
 	deny();
 	return 0; 
 } 
 
void jolly(void)
{
	printf("For he's a jolly good fellow!\n");
}
 void deny(void)
 {
 	printf("Which nobody can deny!\n");
 }

在这里插入图片描述
5.编写一个程序,生成以下输出:
Brazil, Russia, India, China
India, China,
Brazil, Russia
除了main()以外,该程序还要调用两个自定义函数:一个名为br(),调用一次打印一次“Brazil, Russia”;另一个名为ic(),调用一次打印一次“India, China”。其他内容在main()函数中完成。

 #include <stdio.h>
 void br(void);
 void ic(void);
 int  main()
 {
        br();
        printf(",");
        ic();
        printf("\n");
        ic();
        printf(",\n");
        br();
        return 0; 
 } 
 
void br(void)
{
        printf("Brazil, Russia");
}
 void ic(void)
 {
        printf("India, China");
 }

在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:14:26  更:2022-03-12 17:17:27 
 
开发: 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 5:00:33-

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