Chinaunix首页 | 论坛 | 博客
  • 博客访问: 616990
  • 博文数量: 204
  • 博客积分: 5172
  • 博客等级: 上校
  • 技术积分: 2092
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-08 21:48
个人简介

一个毫无毅力之人的自勉

文章分类

全部博文(204)

文章存档

2014年(1)

2013年(54)

2012年(50)

2011年(94)

2010年(3)

2009年(3)

分类: LINUX

2011-12-29 23:13:49

1.排序
%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95









2.链表
%E9%93%BE%E8%A1%A8




3.指针与数组名
数组与指针同为两种数据类型,说“数组名就是指针”是错误的。这不是在钻牛角尖,而涉及到自己的理解。
数据类型的本质功能是按照一定的形式分配出一定的空间,方便我们使用。至于如何使用空间,就是逻辑问题了。
#include

void fun(int b[100])
{
    printf("sizeof(b) = %d\n",sizeof(b));
}

int main()
{
    int *p = NULL;
    int a[100];

    //a+=1; //test.c:12:3: 错误: 双目运算符 + 操作数(‘int[100]’和‘int’)无效
    //a++;  //test.c:13:3: 错误: 自增操作数必须是左值

    printf("sizeof(a) = %d\n",sizeof(a));
    printf("sizeof(a[100]) = %d\n",sizeof(a[100]));
    printf("sizeof(&a) = %d\n",sizeof(&a));
    printf("sizeof(a[0]) = %d\n",sizeof(a[0]));
    printf("sizeof(p) = %d\n",sizeof(p));
    printf("sizeof(*p) = %d\n",sizeof(*p));
    fun(a);
}

输出为:
sizeof(a) = 400
sizeof(a[100]) = 4
sizeof(&a) = 8
sizeof(a[0]) = 4
sizeof(p) = 8
sizeof(*p) = 4
sizeof(b) = 8


我的是64位系统,很说明问题。

有疑惑的地方是:把数组当作型参时,又像是指针。

其实 函数参数的传递仅仅是值的传递,数组名当指针 是出于效率考虑的一种规定而已。
在函数中使用的仅仅是其值,即数组名的 又即地址,函数如何使用它,就和数组名无关了。


char 有unsigned 和signed之分。之前还真没注意过。


switch case 后面跟整型 or 字符串 or 字符常量。反正内存里都是“整型”


/*88*/编译器把注释当成空格
阅读(1318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~