程序员笔记

一、程序设计基本概念

1.printf操作顺序是从右向左,计算参数时,从右向左压入堆栈。


2.条件判断“A” == a 优于 a == “A”,因为会进行类型判断,万一错写== 为 = ,C++是不允许对常量赋值的。


3.关于运算符方面的问题,不想去管,游戏是一个偏软的东西。


4.a,b两个数,在不使用ifswitch等条件判断语句中,如何找到最大。

思想是采用数学平均数,绝对值。

5.a,b交换,不使用中间变量。

a = a + b;

b = a - b;

a = a - b;

问题是 a + b可能会越界

所以采用这个

a = a ^ b;

b = a ^b;

a = a ^ b;


6.C 与C++的问题,在调用C编译后的函数,要加extern C,因为C++有重载,函数会被编译成这样fun_int_int而C不会。所以通过这个来进行连接,解决名字匹配的问题。


7.C与C++的区别

C是一门结构化的语言,C语言优先考虑的是算法和结构。程序考虑如何通过输入一个数据,通过一个过程,进行事物控制或者获得输出结果。

而C++则是一门面对对象的语言,考虑的是如何构造一个对象模型,将需要解决的问题,用模型模拟出来,然后进行解决。


8.移除程序中的注释。没有进行仔细的考虑,思维过程应该是将大致步骤考虑清楚,然后在仔细考虑注意事项,意外的事项。思维首先是考察要处理的问题的情况,将情况进行了解,比如说分多少种类型,有什么问题,注意到不同的事件。然后针对各种类型问题提出解决方案,重点关注意外情况的处理。


9.预处理、const、sizeof

宏定义上在后面添加类型,比如说(一个数)UL,数的类型为UL。

const添加在函数后面,表示恒态函数,如func() const。

const与宏定义的区别

第一、宏定义没有类型,而const有类型。

第二、在调试过程中,无法对宏定义进行调试,但可以对const调试,基本C++里面不使用宏定义。

const在C++中和C中存在不同

首先,在C进行编译的时候,编译器是不能把const当作编译期间的常量的,所以以下写法有问题

const buff = 100;

char array[buff];

buff未定义。

而const buff;在C中可行,当作一个声明,而在C++中则不行,因为C默认const是外部连接,可以在别处进行定义。而C++则是内部连接,必须采用extern进行外部连接。


注意sizeof与strlen的区别,sizeof侧重的是内存,而strlen是字符长度。


10.指针与引用

指针与引用的区别在于:指针可为空,而引用不能为空。指针可以改变,而引用无法改变,


在函数中申明一个指针,如果指针赋值为一个另一个指针指向的内容,容易造成内存泄露。因为申明了指针但是没有分配内存。*a = *b。


char *a[] = "hello world";定义的是一个局部变量。

char *a = "hello world";定义的是一个全局数组。


数组中,[]中为十六进制等等数据,一般需要除以数组的类型内存大小。


指针是无法被直接赋予一个地址的,这在C++中不允许。例如,int *b = (int *)0xfff;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值