C/C++知识总结 二 C/C++基础知识
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处理(键盘)
约定:
- 变量名,函数名和数据类型名等用小写字母
- 自定义的类型名(如类)、符号常量名及宏用大写字母
- 下划线开头的名字常为系统函数(库函数)用户一般不用
最新文章
- ReSharper详解Index0
- hdu-5895 Mathematician QSC(数学)
- Servlet容器如何同时来处理多个请求
- Hadoop学习之--Fair Scheduler作业调度分析
- 1068: [SCOI2007]压缩 - BZOJ
- matlab 学习
- spring- properties 读取的五种方式
- 在静态页面html中跳转传值
- HDOJ 1420 Prepared for New Acmer(DP)
- TortoiseGit保存密码
- hdu 2046递推
- python自动化开发-[第十八天]-django的ORM补充与ajax,分页器
- golang channle close() x,ok := <;- c
- PAT 1016 Phone Bills[转载]
- SQL学习笔记1
- ruby + phantomjs 自动化测试 - GA
- sort change from to range
- NRF24L01——工作原理解读
- OpenGL全景视频
- c++ static笔记
热门文章
- 必备技能二、es6
- nginx前端服务部署
- 一起了解 .Net Foundation 项目 No.19
- golang bufio.NewScarme
- 将xml处理为json对象数组
- fatal: I don&#39;t handle protocol &#39;git@http&#39; 解决
- cat、head、sed 三盟友
- java -封装一个类。(姓名、年龄、性别)
- iOS开发:十六进制颜色转UIColor
- spring的ioc依赖注入的三种方法(xml方式)