关于c:c学习笔记-Dynamic-Thesky

6次阅读

共计 2318 个字符,预计需要花费 6 分钟才能阅读完成。

1.int 整型相除后果取整舍小数

2. 两个小数不能做取模运算

3. 前置递增 ++a: 让变量 a(此处为 a)+1
前置与后置递增的区别:
前置先让变量 + 1 而后进行表达式运算

4. 非真即假,a=10,10>0 为真;!a=0,a 取反则为假即为 0,!!a 非假值为 1(非零则为真)

5.switch 语句中只能放整型或字符

6.while 循环当条件为真时才执行,在 ” 输入 0 -9″ 的实例中,当 num 实现 while 循环后其值为 10

7.rand() % 100 // 此处将会随机生成一个 0 -99 的数字
(rand 为伪随机)

8. 获取三位数的个位: 对数字取模于 10
十位: 先整除 10 在取模于 10(解析:先转化为两位数在进行获取个位数的操作)
百位: 除以 100

9. 若应用优化好的支流编译器则在循环内定义变量不会被反复调配

10. 嵌套循环中的 i 能够重复使用,可能是独立于循环中的,编译器容许套娃,然而最好不要,会升高程序可读性.(套娃循环)

11. 嵌套循环中输入的雷同的变量(例如 i),存在就近准则,即输入最近的 i

12. 在初始化数组数据的时候,没有填写的数据 (间断的开端的数) 会用 0 补充

13. 内存地址是随机调配,每次运行都会产生扭转

14. 数组名是常量不能进行赋值

15. 指针本质是用于保留地址的变量,但因起非凡用处所以另起概念,某种层面上: 指针 == 变量 == 地址

16.&: 取址 * 取值,指针在指向数组的时候可不加 &// 详见第 29 条,在指向数组中某一元素的时候用 &

17. 解援用: 把地址对应的内容解进去,并 援用;即 p== p(指针) 对应 (或指向) 的内容( p 就是 p 对用内容的援用)

18. 空指针好比:int a = 0,然而指针开始的时候没有地址给他 ” 指 ”,指向 null 就和给 a 赋的值 0 的意义差不多

19. 函数中参数为数组时,数组主动进化成数组中第一个数据的首地址,:arr[i] == *(arr+i)即拜访 arr[第一个数据 +i]中的数据;这也是为什么 i <len(数组长度)的起因,因为传递的形参是第一个数据的地址,此时数组的数据个数就等于 len-1.(留神点: 第一个数组计数点为 0; 用数组长度 // 假设为 3;求最初一个元素则示意为 3 -1//0,1,2 中 2 是最初一个元素,但他有三个元素所以须要减 1)

20. 构造体: 创立构造体变量的时候关键字可省略,而构造体变量定义的时候不可省略

21. 在 main()函数里定义的同名变量会屏蔽掉 main 函数外的全局变量,(在外定义的是全局在内定义的是部分,)

22. 当局部变量被定义时,零碎不会对其初始化,您必须自行对其初始化。定义全局变量时,零碎会主动初始化为下列值
[
int 0
char ”
float、double 0.0
pointer nullptr(C 语言是 NULL)//NULL 和 nullptr 在指针层面上代表的都是空值, 然而因为 Null 自身是宽泛意义上的空值(0 之类的)所带来的在 c ++ 上的局限性,c++ 定义了一种新的专门的空指针值类型
]

23. 在函数内应用同名的全局变量和局部变量: 在全局变量之前加上域名解析则援用全局变量(::a 是全局

24.static 润饰的全局动态变量只在以后源文件内应用;动态修饰符用于将函数内的值从栈区放到全局区(不会因为来到作用域而被开释或回收掉),变为全局变量,能够返回该变量并可在内部操作该变量

25. 在一个文件中有某变量的定义,则在其余应用到该变量的文件中应申明该变量(此时不可赋值)

26. 一般数组中以数组名用 cout 来输入,只会失去一串地址;用字符数组则会输入数组中的内容.

27. 指针不同的数据类型指向的变量或常量的数据类型不同,能够记为: 某类型的指针指向同类型的数据

28. 形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参自身进行的操作

  1. &height[0] 就是获得是数组第一个元素的地址,假如地址为 1000;&height 是间接对数组名进行取地址,这个时候就是获得是 height 整个数组的地址,指向蕴含 10 个元素的 int 型数组,height 等价于 &height[0],height+1 会将地址加 4 个字节(不肯定是四个,视类型而定);但 &height+1 就是将地址减少 10*4 个字节(取地址符优先级大于加号个,故取地址符依照其结合律先与 height 联合之后对联合值进行加 1 操作)

30. 传递参数和传递地址的区别: 传递参数时复制实参,如果传入数据过多会影响执行效率;当传递参数过多时应用传递地址,这样只传入四个字节,或者用 facetoface

31. 类的权限分为: 私有、公有、爱护权限,私有权限类内和类外都能够拜访,爱护和公有只能类内拜访(区别在于爱护权限子对象也能够拜访,而公有权限子对象不能够拜访),类内拜访即应用构造函数: 例如在函数体内应用赋值语句 ” 属性 = 内部变量 ”,而后通过调用该函数实现类内拜访

32. 构造体中能够通过函数指针来实现类中 ” 构造函数 ” 这一性能

33. 如果开释数组的时候没有 delete []则只会开释数组中第一个元素,后续成为野指针

34. 函数返回援用的时候,函数名前须要加上 & 符,此时函数名即为返回值 (函数内 return 后的货色) 的一个援用;用援用 (1) 来接管援用 (2 函数名),更改 1 的值就会更改 2 的值就会更改 2 援用的值;上一句话也能够间接更改 2(也就是函数名) 的值,此时函数能够作为左值

35. 援用的实质为指针常量(即指针指向不可扭转,值能够扭转)

36. 只有非动态成员 变量 存储于类,动态函数和非动态函数、动态成员都不存储于类

  1. int* a = new int[10] {1,2,3,4,5,6,7,8,9,10}; 可对动静(new 进去的)数组进行值初始化,此办法是“new int[10]()// 每个元素都初始化为 0”的拓展,在 c ++11 后反对
正文完
 0