C++学习1-(C语言基础、VS快捷键)
C语言基础复习
1、三码
正数:
3码合1 ,正数的反码/补码就是其本身
负数:
- 原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值
原码:11010101
- 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反
反码:10101010
- 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
补码:10101011
2、 运算符优先级和结合性
C语言运算符优先级等级口诀
[圆方括号、箭头一句号]
[自增自减非反负、针强地址长度]
[乘除,加减,再移位]
[小等大等、等等不等]
[八位与],[七位异],[六位或],[五与],[四或],[三疑],[二赋],[一真逗]
n++ : 先使用n,然后将它的值增加
++n : 先将n值增加,然后再使用它
3、函数
变量作用域:局部、全局、静态
局部变量:函数内部,生存周期随函数
静态变量在函数内的:作用域也是函数内的,但是生存周期的程序运行时一直存在
静态变量在函数外:作用域局限于当前源文件内,生存周期的程序运行时一直存在
全局变量:整个程序,声明了就能用
参数传递方式:
- 值传递
- 指针传递
- 引用传递
4、宏
无参宏定义方式:#define PI 3.14
带参宏定义方式:
#define Fun_1(x) x+10
#define Fun_2(x) (x+10)
这是审题时最容易错误的地方
Fun_1(5)*10 Fun_1结果为:->5+10*10 = 105
Fun_2(5)*10 Fun_2结果为:->(5+10)*10 = 150
5、结构体(struct)、联合体(union)、枚举(enum)
- 结构体(struct)
前面的 char + short不够4字节,要按照4字节对齐。int后面的char不够4字节也需要按4节对齐
typedef struct node
{
char a; 1
short b; 2
int c; 4
char d; 2 //这两个合并成4字节
char e; 2
}NODE;
最后2个char合成一个4字节,(1+2)+4+4 = 12
- 联合体(union)
union中变量共用内存,应以最长的为准,
typedef union node
{
int a;
char b;
int c[10];
char d[20];
}NODE;
int a = sizeof(NODE); a的值等于多少?
答案:40
- 枚举(enum)
enum初值为0
enum {
FLOWA,
FLOWB = 10,
FLOWC,
};
int main()
{
printf("%d %d %d", FLOWA, FLOWB, FLOWC);
return 0;
请问FLOWA, FLOWB, FLOWC 分别为多少?
答案: 0 ,10,11;
}
- 成员访问
访问结构体成员的运算符有两种,一种是“.”即结构运算符,另一种是“->”即结构指针运算符。
#include <stdio.h>
typedef struct {
int int_field;
char char_field;
} my_struct;
void main(){
my_struct my_s; // 声明结构体变量
my_s.int_field=3; //结构运算符访问结构成员
my_struct *s; // 声明结构体指针
s=(my_struct *)malloc(sizeof(my_struct));
s->int_field=4;
s->char_field='a';
(*s).int_field=6;
- 类型定义
typdef struct _A{}A,*PA
Visual Studio快捷键
VS真是最好的编辑器没有之一,有很多的快捷键可以使用。
1.注释代码:
1)Ctrl-K + Ctrl-C: 注释一段选择代码
2)Ctrl-K + Ctrl-U: 取消一段选择代码的注释
2.大小写转换
1)转小写:使用组合键“Ctrl+ U”;
2)转大写:使用组合键“CTRL + SHIFT + U”。
3.代码排版
shift + { : 选中内容增加{号
CTRL + W :选择当前单词
Ctrl + M + M - 折叠代码
Ctrl + A 全选后
Ctrl + K+D 格式化代码
使用#region方法头的位置,将代码折叠起来
//语法描述
#pragma region name
#pragma endregion comment
//END
//实例代码
#pragma region Region_1
void Test() {}
void Test2() {}
void Test3() {}
#pragma endregion Region_1
int main() {}
4.定义与引用
转跳到定义:F12;
查找所有引用:使用组合键“Shift+F12”
跳转文件 :“ALT+O”
5.断点调试
Ctrl+Shift+F9:删除所有断点;
Ctrl+F9:禁用断点
F10:单步执行,跳过所执行的函数体部分;
Ctrl+F10:运行到光标所在行,反复触发
F11:单步执行,会单步到所执行的函数体里面去;
Shift+F11:跳出当前执行的函数体部分;
F5:设定断点后,使用F5启动VS调试可以直接启动进入循环;
调试技巧
记录初始值,如X,Y坐标,坦克类型
6.条件编译调试技巧
#ifdef _DEBUG
printf("%d",__LiNE__);
#else
#endif
__FILE__
C++学习1-(C语言基础、VS快捷键)的更多相关文章
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- Arduino学习笔记② Arduino语言基础
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ndk学习之C语言基础复习----虚拟内存布局与malloc申请
在这一次中来学习一下C语言的内存布局,了解它之后就可以解释为啥在用malloc()申请的内存之后需要用memset()来对内存进行一下初始化了,首先来了解一下物理内存与虚拟内存: 物理内存:通过物理内 ...
- GO学习-(20) Go语言基础之单元测试
Go语言基础之单元测试 不写测试的开发不是好程序员.我个人非常崇尚TDD(Test Driven Development)的,然而可惜的是国内的程序员都不太关注测试这一部分. 这篇文章主要介绍下在Go ...
- GO学习-(19) Go语言基础之网络编程
Go语言基础之网络编程 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程. 关于网络编程其 ...
- GO学习-(17) Go语言基础之反射
Go语言基础之反射 本文介绍了Go语言反射的意义和基本使用. 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息. 值信息:程序运行过程中可动态变化的. 反射介绍 反射是指 ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- 我的学习目标(目前已初步学习完Java语言基础)
操作系统.尤其是内存/线程/进程方面 计算机网络协议,重点关注 TCP/UDP/HTTP. 数据结构与算法. 数据库 设计模式,熟练掌握常用的几种设计模式. Java语言基础.熟悉java语言基础,了 ...
- GO学习-(18) Go语言基础之并发
Go语言基础之并发 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因. Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微 ...
随机推荐
- 【转】安全加密(二):BLE安全攻击反制措施
本文导读 近年来出现了越来越多的低功耗蓝牙应用,即BLE(Bluetooth Low Energy),比如说智能手环.防丢器等,对蓝牙的安全要求也越来越高.这篇文章将深入浅出说明BLE4.0~4.2中 ...
- suoi21 高能显示屏 (cdq分治)
可以把翻倍的操作看作是一个查询和修改(增加刚查询得来的值)的符合操作,然后做cdq就行了 #include<bits/stdc++.h> #define pa pair<int,in ...
- 前端学习 -- Html&Css -- 背景
background 在一个声明中设置所有的背景属性. background-attachment 设置背景图像是否固定或者随着页面的其余部分滚动. background-color 设置元素的背景颜 ...
- spring aop 获取request、response对象
在网上看到有不少人说如下方式获取: 1.在web.xml中添加监听 <listener> <listener-class> org. ...
- 关于打包测试环境,百度地图报 Bmap not undefined
https的网站使用百度地图,如果你引用的地址没写对的话,加载不出来百度地图,被认为是不安全的JS内容. https://api.map.baidu.com/api?+你的秘钥+&s=1 应该 ...
- 读入字符串/字符 scanf与getchar/gets区别
1. 读入字符 scanf/getchar:空格.Tab.回车都可以读入.但要以回车作为结束符. 所以当读入字符时,注意去掉一些干扰输入的字符,如空格和回车 2. 读入字符串 scanf:不能读入空格 ...
- 2018.9南京网络预选赛(J)
传送门:Problem J https://www.cnblogs.com/violet-acmer/p/9720603.html 变量解释: need[ i ] : 第 i 个房间含有的旧灯泡个数. ...
- 洛谷 P3159(BZOJ 2668)[CQOI2012]交换棋子
有一个\(n\)行\(m\)列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态.要求第\(i\)行第\(j\)列的格子只能参与\(m[i][j]\)次交换 ...
- Python 爬虫的工具列表 附Github代码下载链接
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- .Net MVC发布出错 Server Error in '/' Application.
发布的时候遇到这个错误:Server Error in '/' Application. Could not load file or assembly 'SettingsProviderNet' ...