C/C++笔记(1)

      读书笔记,记录于此,温习之用。


1.void 真正发挥的作用在于:

     (1)对函数返回的限定

      (2)对函数参数的限定

注:在C99标准中main()函数的返回值默认为int型

2.sizeof的真实面目:

     sizeof是关键字,而并不是有些常认为的的函数,只不过是其长的像而已,那么怎么检验这一说法了?只需在编译器中用sizeo i;即可,编译器通过,则证明确实如此,因为函数后面没有括号是不行的。

    这里面有几个题目容易混淆的:

         int a[100];

         sizeof(a)  ;//100,因为a代表的是一种数据结构;

         sizeof(a[100);//4,数组中的第一百个元素,为int型

          sizeof(a[0]);//4;同上

          sizeof(&a);//4,取数组的地址

          sizeof(&a[0]);//4,去第一个元素的地址;


           int b[100];
            void fun(int b[100])
              {
                    sizeof(b);// sizeof (b) 的值是4;//函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个                                                               //指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
               }

3.return 

   起作用是用来结束函数和返回其后面跟的值;

       return //直接结束函数,跳到函数外 ;

       return 0//代表函数正常终止;

       return 1//代表函数非正常终止;

注意:return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。

4.const(虽说是常量修饰符,但是其实质是只读变量。const修饰的变量一定要赋初值,)

 const int *p; // p 可变,p 指向的对象不可变
int const *p; // p 可变,p 指向的对象不可变
int *const p; // p 不可变,p 指向的对象可变
const int *const p; //指针p 和p 指向的对象都不可变

记忆方法如下:“近水楼台先得月”,去掉类型之后 ,看const离谁最近。第一个离*p最近,代表的是指向的变量,多以变量不可变,指针可变,同理可得其他的。

还有,记住一句话,const 修饰的只读变量不能用来作为定义数组的维数,也不能放在case 关键字后面。

5.遇到一题:int i0;index==(i++)

   题中先判断index==i==0的,相当于(index==i)·····i++;

6.#define PCHAR char* 
    PCHAR p3,p4;

注意,这里的p4并不是代表一个char型指针,而是一个char类型的字符。

7.  转移字符:\与后面跟的字符之间没有空格,切记,加空格之后无意义

8.||和&&:

    

int i=0,j=0;
	if ((++i)>0||(++j)>0)
	{
		cout<<i<<"  "<<j<<endl;
	}
其中的i=?,j=?正确答案是1,0;这样换成&& 也很清楚答案是1,1了;

9.另一种两个数交换的方法:

    

        a^=b;
	b^=a;
	a^=b;
当然这只是一种方法,就程序的易读性而言是不好的。

10.关于左移和右移运算

 正数的左右移都是一样的,按照给定位数移动,其余位补零;

负数则要分情况:

1)负数的原码在移位时符号位保持不变,其余位补零

2)负数的反码保持符号位不变,移位后其余位补1

3)负数的补码分两种情况:第一,右移时,符号位保持不变,其余位补1;第二,左移时,符号为保持不变,其余位补0;

由于负数在计算机里面存储的是补码形式,所以,在写程序时所谓的右移左移都按照补码的操作来。当然,这只是算数右移和左移的情况,至于逻辑移位操作,请参考相关资料




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值