一、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;
}