第2章 C语言概述

学习笔记——《C Primer Plus》

第2章 C语言概述

  • 2.1 简单的C程序实例
  • 2.2 实例解释
    • 2.2.1 快速概要
      • 1. #include指令和头文件
      • 2. main() 函数
      • 3. 声明
      • 4. 赋值
      • 5. printf() 函数
      • 5. return 语句
  • 2.3 简单程序的结构
  • 2.4 多个函数

2.1 简单的C程序实例

#include <stdio.h>
int main(void){int num;                  //定义一个名为num的变量num = 1;                  //为num变量赋初值print("I am a simple");   //使用printf()函数print("computer.\n");print("My favorite number is %d because it is first.\n",num);getchar();return 0;
}

2.2 实例解释

在这里插入图片描述

2.2.1 快速概要

1. #include指令和头文件

#include <stdio.h>   //包含另一个文件:标准输入/输出头文件。//#号表明,C预处理器在编译器接手之前处理这条指令。

该行告诉编译器把stdio.h中的内容包含在当前程序中。stdio.h是C编译器软件包的标准部分,提供键盘输入和屏幕输出的支持。
头文件包含了编译器创建最终可执行程序要用到的信息。简而言之,头文件帮助编译器把程序正确地组合在一起。

2. main() 函数

int main(void)  //int表明main()函数返回一个整数,void表明main()不带任何参数
{               //左花括号表示函数定义开始...
}               //右花括号表示函数定义结束

C程序包含一个或多个函数,它们是C程序的基本模块。

3. 声明

int num;    /*该句完成两个任务:1.在函数中有一个名为num的变量;2.int表明num是一个整数,编译器为num变量在内存中分配存储空间。num是一个标识符(identifier),也就是一个变量、函数或其它实体的名称。标识符第一个字符必须是字符或下划线,不能是数字,且区分大小写。*/

这行代码叫作声明(declaration)。声明把特定标识符与计算机内存中的特定位置联系起来,同时也确定了储存在某位置的信息类型或数据类型。
在C语言中,所有变量都必须先声明才能使用,这意味着必须列出程序中用到的所有变量名及其类型,还要求把变量声明在块的顶部,其它语句不能在任何声明的前面。(C99和C11,可以把声明放在块中任何位置。)

(1)把所有变量放在一起,方便读者查找和理解程序的用途,变量名命名必须有意义。
(2)声明变量会促使你在编写程序之间做一些计划。如要获取哪些信息?如何输出?表示数据最好的方法是什么?
(3)声明变量有助于发现隐藏在程序中的小错误。

4. 赋值

num = 1;

在执行int num;声明时,编译器在计算机内存中为变量num预留了空间,然后在执行赋值表达语句时,把值储存在之前预留的位置。

5. printf() 函数

printf(“computer.\n”);  //print()函数是标准的C库函数。/*当程序运行到这一行时,控制权被转给已命名的函数(printf()),函数执行结束后,控制权被返回至主调函数(calling function),该例中的main()*/

在程序中使用函数叫作调用函数。printf()是一个标准函数。圆括号中的内容是从main()函数传递给print()函数的信息,例如把computer传递给printf()函数,该信息被称为参数,更确切地说是函数的实际参数(actual argument),是传递给函数的特定值。形式参数是函数中用于储存值的变量。

print("My favorite number is %d because it is first.\n",num);

%d相当于一个占位符,其作用是指明输出num值的位置。

5. return 语句

return 0;  //return关键字后面是待返回的值,并以分号结束。

C函数可以给调用方(操作系统) 提供(或返回)一个数。

2.3 简单程序的结构

#include <stdio.h>
int main()
{语句;return 0;
{

2.4 多个函数

把自己写的函数加入程序中:

#include <stdio.h>
void butler(void)   //C函数原型(prototype):告知编译器在程序中要使用该函数。
int main()
{printf("I will summon the butler function.\n");butler();   //以函数调用(function call)的形式出现在main()中。printf("Yes. Bring me some tea and writeable DVDs.\n");return 0;
}
void butler(void)  //函数定义(function definition):函数定义即是函数本身的源代码。
{printf("You rang, sir?\n");
}

(1)函数原型是一种声明形式,告知编译器正在使用某函数,因此函数原型也被称为函数声明(function declaration)。函数原型还指明了函数的属性。
(2)在main()函数中调用butler()很简单,写出函数名和圆括号即可。当butler()执行完毕后,程序会继续执行main()中的下一条语句。
(3)何时执行butler()函数取决于它在main()函数中被调用的位置,而不是butler()的定义在文件中的位置。
(4)C的惯例是把main()函数放在开头,因为它提供了程序的基本框架。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KMP学习

2019独角兽企业重金招聘Python工程师标准>>> 从头到尾彻底理解KMP 字符串匹配的KMP算法 KMP算法的Next数组详解 package leetcode;import java.util.Arrays;public class ImplementStrStr {public int strStr(String haystack, String needle) {if(haystacknull||ne…

MVC应用程序实现文件库(FlexPaper)

很久之前Insus.NET在实现了《FlexPaper实现文档在线浏览》http://www.cnblogs.com/insus/archive/2011/07/21/2112369.html。 当时也只是实现了显示而已&#xff0c;也没有实现在线转换功能。现在&#xff0c;Insus.NET已经从asp.net转向了asp.net MVC应用程序开发了。因此再想…

海量数据处理面试题集锦

十七道海量数据处理面试题与Bit-map具体解释作者&#xff1a;小桥流水&#xff0c;redfox66&#xff0c;July。前言本博客内以前整理过有关海量数据处理的10道面试题&#xff08;十道海量数据处理面试题与十个方法大总结&#xff09;&#xff0c;此次除了反复了之前的10道面试题…

java的linux执行的shell

2019独角兽企业重金招聘Python工程师标准>>> #!/bin/sh #该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用&#xff0c; #也可以作为启动java程序的独立脚本来使用。 # # #警告!!!&#xff1a;该脚本stop部分使用系统kill命…

统计 Github 2021 贡献过的开源项目

统计一下 2021 贡献过的开源项目Intro新的一年的开始了&#xff0c;有很多总结和回顾还没有做&#xff0c;今天就盘点一下贡献过的开源项目吧~起初想着手动地通过 Github Dashboard 来统计但是感觉有些麻烦&#xff0c;还得一个个地复制标题链接等&#xff0c;好麻烦&#xff0…

IntentService使用

说实话&#xff0c;对于这个类在我实际工作中并没有用到过&#xff0c;通常也只是用了它的父类Service&#xff0c;通过官方文档可以看出类的层次结构: 而在今年的一次面试当中&#xff0c;有个面试官提起了它&#xff0c;所以虽说目前还没有真实在项目中用它&#xff0c;但是有…

如何使用 Barracuda 防火墙设置/保护 Azure 应用程序

&#xfeff;&#xfeff;如果某企业在 Windows Azure 上托管某个应用程序&#xff0c;该应用程序会在某个特定时间暴露到 Internet&#xff0c;以用于商业用途。公共 Internet 带来客户的同时也带来了攻击者。 Tim Omta 发表的新博客文章中介绍了如何使用 PaaS 应用程序之前的…

Git 简单命令行指令

为什么80%的码农都做不了架构师&#xff1f;>>> 这些git命令来自gitlab的简单提示&#xff0c;挺人性化&#xff0c;记录下。 Git 全局设置 git config --global user.name "yourname" git config --global user.email "yournamemail.com" 创…

第4章 字符串和格式化输入/输出

学习笔记——《C Primer Plus》 第4章 字符串和格式化输入/输出4.1 前导程序4.2 字符串简介4.2.1 char 类型数组和 null 字符4.2.2 使用字符串4.2.3 strlen() 函数4.3 常量和 C 预处理器4.3.1 符号常量1. 使用**符号常量**的好处:2. 创建符号常量4.3.2 const 限定符4.3.3 转换说…

ios之第一个程序Hello word, I am chenyu !

1、下载Xcode 个人建议网上下载Xcode&#xff0c;快些&#xff0c;特么再应用商店下载像日了狗一样&#xff0c;还要填写资料&#xff0c; 最后资料没有写好&#xff0c;无效字符。2、新建项目 下载好了Xcode&#xff0c;一步一步往下点就行&#xff0c;然后create 项目然后找m…

小博老师解析Java核心技术 ——JSwing绘图技术

2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程的时候&#xff0c;如果需要开发客户端窗体类型的程序&#xff0c;可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术&#xff0c;今天主要讲解绘图技术…

.NET6之MiniAPI(十三):健康检查

程序员开发程序&#xff0c;是“生”的过程&#xff0c;运维人员负责日常运维&#xff0c;是“养”的过程&#xff0c;在养的过程&#xff0c;运维人员希望在第一时间了解程序的状况&#xff0c;健康检查&#xff0c;是最基础的手段。var builder WebApplication.CreateBuilde…

linux之用 grep -r 关键字 快速搜索在目录下面的含有关键字的文件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程 1、快速搜索在目录下面的含有关键字的文件 我们采用下面命令cd directoriesgrep -r 关键字2、搜索结果

python 抓包基于pypcap

2019独角兽企业重金招聘Python工程师标准>>> 1、查询python和python-dev是否安装 dpkg-query -l python dpkg-query -l python-dev #没安装就先安装 sudo apt-get install python python-dev 2、安装flex和bison sudo apt-get install flex bison3、下载libpcap并安…

推荐一个基于Dapr的 Red Dog 的完整微服务应用程序

微服务尽管构建起来非常困难&#xff0c;但它们已成为一种越来越流行的架构模式。随着开发人员开始将他们现有的单体代码库迁移到微服务系统&#xff0c;他们花费大量时间来处理分布式应用程序带来的固有挑战&#xff0c;例如状态管理和服务调用。通过引入Dapr 通过以 http/gRP…

基于事件的 NIO 多线程服务器

2019独角兽企业重金招聘Python工程师标准>>> JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题&#xff0c;在 NIO 中使用多线程&#xff0c;主要目的已不是为了应对每个客户端请求而分配独立的服务线程&#xff0c;而是通过多线程充分使用用多个 CPU 的处…

第6章 C控制语句:循环

学习笔记——《C Prime Plus》 第6章 C控制语句&#xff1a;循环6.1 再探 while 循环6.1.1 程序注释6.1.2 C风格读取循环6.2 while 语句6.2.1 终止 while 循环6.2.2 何时终止循环6.2.3 while&#xff1a;入口循环条件6.2.4 语法要点6.3 _Bool 类型6.4 不确定循环和计数循环6.5 …

openresty 前端开发进阶一之http后端

2019独角兽企业重金招聘Python工程师标准>>> 做前端开发&#xff0c;大多数情况下&#xff0c;都需要跟后端打交道&#xff0c;而最常见的方式则是通过http请求&#xff0c;进行通信。 在openresty中&#xff0c;通过http跟后端整合通信的方式又很多种&#xff0c;各…

第7章 C控制语句:分支和跳转

学习笔记——《C Prime Plus》 第7章 C控制语句&#xff1a;分支和跳转7.1 if 语句7.2 if else 语句7.2.1 介绍 getchar() 和 putchar()7.4 一个统计单词的程序7.1 if 语句 下程序读取一列数据&#xff0c;每个数据都表示每日的最低温度&#xff08;℃&#xff09;&#xff0c…

【Blog.Core开源】网关统一集成下游服务文档

一般看到公众号更新&#xff0c;就是大概率要开始上班了&#x1f602;上回书咱们说到了《【Blog.Core开源】快速预览Admin界面效果》&#xff0c;这样我们就可以专注于后端开发&#xff0c;而且也能快速的实现效果的预览。那今天我们继续来往下走&#xff0c;说一说网关相关的内…