C++学习笔记——语法1

一、C语言最基础语法

1.各“语法单位”(组成部分)使用至少一个分隔符(空格、Tab、换行)隔开。

2.必须使用英文输入,包括空格也要用半角。(注释和用双引号括起来的字符串中可以使用中文)

3.每条代码指令后都要加分号 ;  ,表示该指令代码结束。

4.#include等预处理指令,必须一条指令占一行。

二、头文件

1.格式

#include <头文件名>
#include "头文件名"

2.头文件的作用

    预先介绍程序文件中使用的各个元素(函数、变量、符号等),使程序和元素之间可以互相识别和使用。

3.尖括号< >和双引号" "的区别

    用< >:程序会从编译器指定的文件目录中找头文件;

    用" ":程序先从当前目录找头文件,如果找不到,再去编译器指定的文件目录中找头文件;

4.头文件的位置

    要放在文件的最前面。最好先放标准库的头文件< >,后放自定义的头文件" ",以防编译出错。

三、main函数

1.main函数的作用

    main函数是程序执行的唯一入口,一个程序必须有一个main函数,且只能有一个main函数。

2.格式

# 1.无参数
int main(void){
    函数体
    return 0;
}

# 2.有参数
int main(int argc, char*argv){
    函数体
    return 0;
}

    返回值类型固定为int(void main()的写法不标准),函数名固定为main,返回值为空时用void,也可用其他数据类型。函数执行到return终止,返回任意整数都可,约定俗成return 0 ,表示是正常运行结束,有异常则返回大于0的数。

四、打印输出

1.C++风格的打印

#include<iostream>
std::cout<<"你好,world.";
std::cout<<std::endl;
std::cout<<"姓名:"<<"道奇"<<"年龄:"<<28<<std::endl;
std::cout<<"工资:"<<18.8<<std::endl;

    std是一个命名空间,cout是std命名空间内的一个“对象”;endl 也是 std 命名空间内的一个对象,表示“回车符”。" "中间扩起来的是字符串常量,字符串常量的值永不会变。std::cout可以连续输出多个、多种类型的数据,中间用<<隔开。

2.C语言风格的打印

printf(“你好!world\n”);
printf(“\n”);
printf(“工资:30000”);
printf(“工资:%d”, 30000);
printf(“姓名:%s 工资:%d 年假:%d”, 道奇 30000, 12);
printf(“圆周率:%f”, 3.1415);

    回车换行符号为 \n,%s为字符串占位符,%d是整数占位符,%f 浮点数(小数)占位符。

五、命名空间的使用

    当某些标识符需要重复使用,可定义不同的命名空间(namespace)以避免标识符命名重复。

    1.定义命名空间

    定义China和Japan两个不同的namespace,因此标识符population和capital可以重复使用。但执行到main函数时会编译错误,因为没有指定打印的是哪个namespace的population和capital。

#include <iostream>
#include <string>

namespace China {
float population = 14.1; //单位: 亿
std::string capital = "北京";
}

namespace Japan {
float population = 1.27; //单位: 亿
std::string capital = "东京";
}

int main(void) {
std::cout << "首都:" << capital << std::endl;
std::cout << "人口:" << population << std::endl;

system("pause");
return 0;
}

    方法1.在打印前,先声明使用哪个namespace,即可打印出想要的结果。同理,std也可以事先声明,使代码更加简洁。

using namespace Japan;
using namespace std;
int main(void) {
cout << "首都:" << capital << endl;
cout << "人口:" << population << endl;
system("pause");
return 0;
}

但同时声明两个namespace,也会导致混淆,编译失败:

using namespace std;
using namespace Japan;
using namespace China;
int main(void) {
cout << "首都:" << capital << endl;
cout << "人口:" << population << endl;
cout << "首都:" << capital << endl;
cout << "人口:" << population << endl;
system("pause");
return 0;
}

    方法2.直接在打印时,强制指定标识符属于哪个namespace,再结合方法1即可。

using namespace std;
using namespace Japan;
int main(void) {
cout << "首都:" << capital << endl;
cout << "人口:" << population << endl;
cout << "首都:" << China::capital << endl;
cout << "人口:" << China::population << endl;
system("pause");
return 0;
}

    方法3.直接指定namespace中的标识符,而不是整个域名。//注意:没有 namespace //

using namespace std;
using China::capital;
using Japan::population;
int main(void) {
cout << "首都:" << capital << endl;
cout << "人口:" << population << endl;
system("pause");
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值