C++ 学习笔记1
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ 学习笔记1,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3305字,纯文字阅读大概需要5分钟。
内容图文
![C++ 学习笔记1](/upload/InfoBanner/zyjiaocheng/642/00d232b674704d61b5650f736382ed38.jpg)
指针(是一个类型)
int i = 32;
int* p = &i; // p 存储 i 的地址
运算符
Condition ? X : Y 如果Condition为真, 则值为X, 否则值为Y
& 取地址运算符
* 查看指针变量的的值
什么是引用(有相同的地址)
int i = 42;
int& r = i; // 定义一个引用变量,给一个存在的变量取一个别名,复制给 r , i 的值也同样会改变,因为有相同的地址
函数的定义
return_type function_name (parameter list) {
body of function;
}
void foo(int a, int* b, int& c, int d = 100) { // 默认值 d , 默认值参数必须放在后面
std::cout << "a: " << a << endl;
std::cout << "b: " << b << endl;
std::cout << "c: " << c << endl;
}
int main() {
int a = 100;
int* b = &a;
int& c = a;
foor (a, b, c) ;
return 0;
}
函数声明(头文件中往往放的便是函数声明)
return_type functiion_name( parameter list);
在调用之前已经定义是不用声明的,如果在调用之后定义的函数,需要声明
头文件(不参与编译,在预处理的时候会在源文件中进行宏展开)
.cpp 称之为源文件, .h (.hpp) 称之为头文件, #include宏命令可以把头文件包含到源文件中, #include 有两种方式, 双引号代表自定义的头文件,双引号中填写路径, 尖括号代表系统的头文件, 头文件中应该只放变量和函数声明,而不能放它们定义,因为头文件实际上会被引入到多个不同的.cpp文件中, #pragma once作用:只被包含一次
auto 存储类(Storage Classes)
auto pi = 3.14; // 根据值推荐类型
auto msg("hello"); // const char*
auto val = new auto(9); // int*
auto x1 = 5, x2=5.0; // 错误,初始化的时候必须为同一类型
register 存储类(Storage Classes)
register 定义存储在寄存器中而不是内存中的局部变量(只是希望这样,完全取决于编译器与程序中怎么使用变量) register int res;
static 存储类(Storage Classes)
指示编译器在程序的生命周期内保存局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁,当static修饰全局变量时,变量的作用域限制在声明它的文件内
extern 存储类(Storage Classes)
告诉编译器这个变量在别的地方定义了,链接(obj文件链接)的时候可以找到
// a.cpp
int count;
extern void write_extern();
int main(){
count = 5;
write_extern();
}
// b.cpp
exter int count;
void write_extern(void)
{
std::cout<< "count is :" << count << endl;
}
分支和循环(可以嵌套使用)
if(condition) {…}else{…}
switch(var) {case condition: … break; … default: …}
while(condition) {…}
for (init; condition; increment) {…}
do{…}while(condition);
typedef 关键字
一种简化复杂名称类型的手段,定义一种类型的别名, 比如:
typedef long double myReal; myReal i = 100;
内联函数
inline是C++语言中的一个关键字, 调用时并不通过函数调用机制,而是通过将函数提直接插入调用处(编译阶段),这样可以大大减少由函数调用带来的开销,通常用预定义成员函数,函数体不能太大
inline void bar(void){
std::cout<< "hello" << endl;
}
宏(不建议使用)
在预测理的时候会进行替换
#define area(x) (x)*(x)
void main()
{
int y = area(2 + 2) // int y = (2 + 2) * (2 + 2)
}
const的意义
修饰内置类型变量,自定义对象等,指定一个语义约束,编译器会强制实施这个约束,告诉编译器某值是保持不变的。
const int a = 7;
int b = a; // correct
a = 8; // error
const int& c = b;
c = 10; //error
const和指针(从右向左读)
char * const cp; // (* 读成 pointer to)
// cp is a const pointer to char
const char *p;
// p is a pointer to const char
char const * p;
// p is a pointer to char that is const
动态内存
// new 和 delete[] 运算符
double* pvalue = nullptr; // 初始化为null的指针
pvalue = new double[20]; // 为变量请求内存
delete [] pvalue; // 释放 pvalue 所指向的内存
呀哈呀哈呀哈
发布了53 篇原创文章 · 获赞 67 · 访问量 2万+
私信
关注
内容总结
以上是互联网集市为您收集整理的C++ 学习笔记1全部内容,希望文章能够帮你解决C++ 学习笔记1所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。