C/C++基础知识

  • C/C++基本格式说明
  • C/C++基本常识说明

C/C++基本格式说明

C语言基本格式

#include<stdio.h> //预处理文件
int main() //自定义且必须定义的mani()函数——为程序开始运行的入口
{
scanf(); //基本输入函数
printf(); //基本输出函数 return 0; //函数结束标志
}//两个{}对应的大括号为main函数的作用范围

注意:这里的#include< >为预编译处理指令,而stdion.h则是编译系统提供的一个库文件,里边有许多函数所需要的的定义(如:scanf和print函数)、以及使用这些定义所包含的信息,因此要想使用这些函数就必须包含 #include<stdio.h>,这样编译器在编译时就会把函数定义等放到取代#include<stdio.h>的位置上。

注意:程序中的 int main(){ }本质就是一个函数,它是程序的入口,可以通过这个函数去调用其它的函数、自定义的“类”等功能。


C++基本格式

#include<iostream> //预处理文件
int main()
{
using namespace std; //声明使用名称空间std,因为名称空间std中
int a; //声明一个int类型的a变量
cin>>a; //cin输入”类对象“,向a变量中输入值
cout<<"Hollow word!";“输出类对象”,输出Hollow word!到屏幕 return 0; //函数结束标志,大量的
}

C、C++格式关联

  • 预处理文件方面:

iostream标准文件库包含了stdio.h文件库而且还有c++特有的内容,注意iostream与iostream.h的区别

  • 输入输出方面:

C语言中用scanf(),printf()函数来输入输出,而C++则用cin,cout类对象来输入输出。


C/C++基本常识

常识:

程序的输入输出:指的是以“程序”为对象(参照)),输入指的是从输入源(如键盘、文件)输入数据到程序;输出指的是从程序产生的数据发送到输出源(如屏幕、文件)

C/C++程序的编译其实主要有几个阶段:1.编译预处理(包括include头文件的复制,宏定义的展开处理等等),2.把预处理后的文件经过语法(syntax)分析和语义(sematics)分析之后生成汇编文件,3.然后再利用汇编器和链接器(链接上动态链接库,插入静态链接库代码等等)生成可执行文件,比如Linux下就是elf格式的文件。

标准库的头文件用尖括号 < > 括起来,非标准库的头文件用双引号 ” ” 括起来。

对象是内存中具有类型的区域。

在C++中,初始化和赋值是两种不同的操作。

内置类型变量在任何函数外如不初始化,系统都会初始化为0,在函数体内如不初始化则可能发生错误(除了用作左操作数)。

有些类类型有默认构造函数,因此定义其对象时可以不显式地提供初始化。

在 C++ 语言中,变量必须且仅能定义一次,而且在使用变量之前必须定义或声明变量,声明变量不分配内存,因此声名不初始化,若声明同时初始化则视为定义。

scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。 scanf()函数原型为int scanf( char const* const _Format, …),printf()函数原型为int printf(char const* const _Format, …)。 scanf()和printf()是格式化输入通过%d,%s,%c等限定输入/输出的类型及格式,因此书写需要格外注意格式和类型,scanf()后面的变量需要取变量的地址。

c++里面没有专门的输入与输出,使用I/O流类来实现

#include

插入操作符”<<“向标准输出流cout中插入字符(cout是basic_ostream类的对象)

抽取操作符”>>“从标准输入流cin中抽取字符(cin是istream类的对象)

cin,cout 在终端I/O处理(键盘)

约定:

  • 变量名,函数名和数据类型名等用小写字母
  • 自定义的类型名(如类)、符号常量名及宏用大写字母
  • 下划线开头的名字常为系统函数(库函数)用户一般不用

编码规范


最新文章

  1. ReSharper详解Index0
  2. hdu-5895 Mathematician QSC(数学)
  3. Servlet容器如何同时来处理多个请求
  4. Hadoop学习之--Fair Scheduler作业调度分析
  5. 1068: [SCOI2007]压缩 - BZOJ
  6. matlab 学习
  7. spring- properties 读取的五种方式
  8. 在静态页面html中跳转传值
  9. HDOJ 1420 Prepared for New Acmer(DP)
  10. TortoiseGit保存密码
  11. hdu 2046递推
  12. python自动化开发-[第十八天]-django的ORM补充与ajax,分页器
  13. golang channle close() x,ok := &lt;- c
  14. PAT 1016 Phone Bills[转载]
  15. SQL学习笔记1
  16. ruby + phantomjs 自动化测试 - GA
  17. sort change from to range
  18. NRF24L01——工作原理解读
  19. OpenGL全景视频
  20. c++ static笔记

热门文章

  1. 必备技能二、es6
  2. nginx前端服务部署
  3. 一起了解 .Net Foundation 项目 No.19
  4. golang bufio.NewScarme
  5. 将xml处理为json对象数组
  6. fatal: I don&#39;t handle protocol &#39;git@http&#39; 解决
  7. cat、head、sed 三盟友
  8. java -封装一个类。(姓名、年龄、性别)
  9. iOS开发:十六进制颜色转UIColor
  10. spring的ioc依赖注入的三种方法(xml方式)