今天11月18了,自己自嗨自乐将近半个月了,离入职的时间越来越近了,但是这段时间自己真的没有学什么东西,oc可以说算是好没有接触,只是回顾了一下之前在高三放假的时候学的懵懵懂懂的C语言,这里顺便吐槽一下mac的键盘,感觉真不好用,远远没有我的Dell灵越好用,I7处理器加上8G内存256GSSD配上巧克力键盘感觉真是黑科技,虽然这款笔记本的上架时间并不长。我买过这台电脑后过了一两个月就下架了。。。哈也是绝版。不过感觉性能真是溜的不能行。

         嗯,刚刚看了点C指针方面的东西,用指针对数组进行输出,然后我随手写了这样一行代码:

        int ages[5]={10,9,32,43,123};
        int *p=ages[0];
        int i=0;
        for(;i<5;i++){
    		printf("%d\n",*(p+i*4));
        }

         然后这里还有一个问题就是编译通过,运行。。。完蛋了。(只有在c99模式下才能在for循环中进行初始化声明??)

    从大一上学期懵懵懂懂的接触过C++中的指针外,这么长时间也忘得差不多了,于是随手写了以上代码。那样写肯定是有错误的,因为指针比我想象的要聪明一些,他可以根据他的声明的类型自动的给自己增加相应类型的长度。其他上述代码应该这么写:

        int datas[] = { 1,45,2,54,4,7,74,9 };
    	int *p = datas;
    	for (int i = 0; i < 8; i++)
    	{
    		printf("%d\n",*(p+i));
    		//或者这么写也是正确的
    		//printf("%d\n",p[i]);
    	}

    例如我声明的指针p的类型是int型的指针,那么再对其+1操作的时候也就是相当于对其指向的地址再加上4。假如声明的指针的类型是double型的指针,那么对指针进行+1操作的时候也就是相当与对其指向的地址加上8.