c++笔记——语法基础1

c++笔记将记载一个温习路径,也算一个快速学习的参考吧!(不一定全面,想到什么就写什么。要学习的同志最好是有权威的书坐镇)

笔记大概会有如下有几个部分:语法基础,使用拓展库,实用工程,补充说明

数据类型:

简单类型:(byte = 8 bit,以下所示为32bit系统,bit不同稍有区别;除ab都可以在类型标识unsigned,表示无符号,一般最高位0表示正,1表示﹣,那么其取值范围也可以类推)

a) void:      0byte  无值域              void

b) bool:      1byte  true/false            bool ok = false;

c) int:       4byte  [-2^31  ~  2^31-1]    int  nflag = 1;

d) short:       2byte  [-2^15   ~  2^15-1]    short nsht = 1;

e) long:       4byte  [-2^31   ~  2^31-1]    long nCnt = 999;

f) char:       1byte  [-2^7   ~  2^7-1  ]   char chA = ‘a‘;

g) wchar_t        2byte  [-2^15   ~  2^15-1]   wchar_t wchF = ‘f‘;

复杂类型:主要指一定自定义类型union,enum,struct,class。暂时介绍主要作用及定义,具体使用查阅它们分别对应的链接。

a) union: 组合,多种类型其值内存重叠共用,内存起始点相同,内存大小依据多类型中最大长度而定,不同类型写入值则改变它所占到的内存位置,不同类型取值也是读其所占的内存位置。具体参考该链接:link

union aUion
{
    char a;
    int b;
    long c;
};

b) enum: 枚举,多用来表示一种状态,默认下一个的值是当前的值+1,如下EING==2。具体参考该链接:link

enum aEnum
{
    EOK = 1,
    EING,
    ENO = 4
};
aEnum sta = EING;

c) struct:结构体,多用来表示事物的属性集(默认权限public)。具体参考该链接:link

struct aStruct
{
    string name;
    int age;
    int height;
    int weight;
};

d) class:类,多用来表示一类事物,包括属性集,包括功能(跟struct非常相似,默认权限private)。具体参考该链接:link

class aClass
{
    aClass(){}
    ~aClass(){}
    bool bOld(){return age>60;}
    string Name(){return name;}
private:
    string name;
    int age;
};

 流程控制:

a)  if else,三元式:

1) if (/*condition*/)
    {
        /*do something*/
    }

2)  if (/*condition*/)
    {
        /*do something*/
    }
    else
    {
        /*do something*/
    }

3)  if (/*condition*/)
    {
        /*do something*/
    }
    else if (/*condition*/)
    {
        /*do something*/
    }
    else
    {
        /*do something*/
    }4)  (/*condition*/) ? (/*do something*/) : (/*do something else*/)    //符合条件执行do something,不符合执行do something else。 执行如有多行,不建议这么做。

b)  while ,do while:

1) do
    {
        /*do something*/
    } while (/*condition*/);

2)  while (/*condition*/)
    {
        /*do something*/
    }  //do while先执行再判断,while则是先判断再执行

c)  for:

  for (/*init*/; /*condition*/; /*change*/)
    {
        /*do something*/
    }
    //经典用法
    for (int i = 0; i < 100; i++)
    {
        /*do something*/
    }

d)  goto,一致不受到推荐,暂且不介绍

函数:

依次是返回值类型,函数名,括号,在括号中是参数,参数用逗号分开,每个参数都有一个类型及形式参数,参数传递有三种形式(值,地址,引用)

int Add(int a, int b)
{
    return a+b;
}

void Swap(int* a, int* b)
{
    int nTmp = *a;
    *a = *b;
    *b = nTmp;
}

void Swap(int& a, int& b)
{
    int nTmp = a;
    a = b;
    b = nTmp;
}

1)值:

    int x = 1;

      int y =  2;

    int z = Add(x, y);

    参数是分别将x拷贝初始化a,y拷贝初始化b,返回a+b时,也是a+b存放在临时变量中,再将该临时变量拷贝赋值了z。

2)地址:

    Swap(&x,&y);

    这里也是一样,将x的地址拷贝初始化了a,y的地址拷贝初始化了b。再取地址对应的值进行交换。如果是传值则x,y无法交换,这个时候的A,B    就像是临时变量,在函数中有效,return之后就无效了

3)引用:

    Swap(x, y);

    a被当作了x的引用,b被当作了y的引用,指向同一个内存地址。

运算:

1)  逻辑运算:

    非:!(expre)          取反

    或:(expreL) || (expreR)  RL其中一个成立则为true、都不成立则返回false,先判断L。

    与:(expreL) && (expreR)   RL其中一个不成立则为false,都成立则返回true,先判断L。

2)  位运算:

    非:!(expre)         非0则得0,0则得1

    或:(expreL) || (expreR)  每一个bit计算,0|0得0,其他得1

    与:(expreL) && (expreR)  每一个bit计算,1|1得1,其他得0

3)  值运算:

    calsym(+ - * / %) 对应 (加 减 乘 除 模)

    =表示赋值 a=2,  calsym= 表示某数加上一个值 a += 3即 a = a + 3;

4)  判断: == 等于   != 不等于

         > 大于    >=大于或等于

        <小于    <=小于或等于

5)  优先级:

    由高到低[()],[*/%],[+-],[logic]。类似四则运算,最好加括号说明,即不会因为优先级问题出错,又便于分析

c++笔记——语法基础1

时间: 2024-10-27 08:24:08

c++笔记——语法基础1的相关文章

JavaScript学习笔记——语法基础1.1

一.写在前面的话 1.我们有听说过,在一些地方,会把JavaScript当作入门级编程语言,这是因为它相对易学,易习. 2.JavaScript是一门地地道道的编程语言,既然是一门语言,那就应该有专属于它本身的语法,掌握它的语法势在必行. 3.不要试图去记忆它的所有语法和关键字,事实上,几乎没有人能做到这一点. 4.没有一个人敢说,学JavaScript1年或者几年就能称为不败的神话,坚持下去,会让你走的更远,只有这样,你才可能欣赏到更美的风景. 5.制定一个适合你自己的计划,选择一本适合你的书

JavaScript学习笔记——语法基础1.3

一.操作符 操作符是用来操作数据值的,它包含很多种,通过code我们可以了解它们的特性. 1.算数操作符 算数操作符包括加.减.乘.除四类操作符,除此之外,还有一些比较特殊的存在. var a = 1; var b = 2; var c = a + b; var d = b - a; var e = a * b; var f = b / a; document.write(c + '<br/>'); // 3 document.write(d + '<br/>'); // 1 do

JavaScript学习笔记——语法基础1.2

一.数组 1.通常情况下,一个变量只能有一个值,若想拥有多个值,就需要使用数组,换句话来说,数组是一个特殊的容器,它可以根据需求存放一个或者多个值.2.数组可以用关键字Array来声明,声明的同时,可以设定它的长度length. var myArray = Array(3); document.write(myArray.length); //输出3 3.我们可以在声明数组的同时对它进行填充,也可以在声明之后进行填充,当然,我们需要对新填充的值指定存放位置,需要注意下标是从0开始计数的. Jav

JavaScript学习笔记——语法基础1.4

一.函数 函数对于任何一种编程语言都是非常核心的概念,它的便利之处在于,我们可以通过函数名的随时调用( 如:functionName() ),就可以执行花括号中的语句,这样就可以实现你的想法.换一种说法,函数就像是哈利波特的通关密语,哈利波特只需要念一句正确的通关密语,就可以打开密室的大门,密语就像是函数,哈利波特在念它的时候就像是在调用这个函数,这个函数的作用同时也是哈利波特的目的就是打开密室的大门. 1.定义函数的语法: function functionName (arguments){

01-Python学习笔记-基础语法

Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 -v            输出Python版本号 -X           从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时. -c cmd     执行 Python 脚本,并将运行结果作为 cmd 字符串. file           在给定的python文件执行python脚本. P

PHP:学习笔记(2)——基础语法

PHP:学习笔记(2)--基础语法 向屏幕输出 说明 1.void echo ( string $arg1 [, string $... ] ) 2.int print ( string $arg ) 注意: 1.echo.print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表. 2.输出变量的时候需要使用双引号! 3.int printf ( string $format [, mixed $args [, mixed $... ]] ) 4.strin

C#语法基础学习笔记-自增(i++、++i)

在刚刚的学习过程中,把困扰已久的问题解决了.下面来跟大家一起分享,探讨一下. i++和++i的相同点: 如:1).int  i=1;  i++;  Console.WriteLine(i); 2).int i=1;++i;Console.WriteLine(i); 通过编译运行上面两端代码,结果i最后的值都是2,i++和++i 的作用是实现变量i的自增. 不同点: 如:1).int i=1;int j=0;j=i++*2;Console.WriteLine("j的值 是{0},i的值是{1}&q

iOS复习笔记2:Objective-C语法基础

一 语法基础 1 关键字 关键字基本上都是以@开头,常见关键字如下: @interface,@implement,@end,@public,@private,@selector,@required,@encode等 其他id,self,super等 2 字符串以@开头 @"Hello world!" 3 布尔类型Yes/No 4 空类型nil(值为0) 5 其他C语言语法 二 OC的HelloWorld程序 // helloworld.m #import <Foundation/

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类