Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5374
  • 博文数量: 6
  • 博客积分: 150
  • 博客等级: 入伍新兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-24 22:58
文章分类

全部博文(6)

文章存档

2011年(6)

我的朋友
最近访客

分类: C/C++

2011-08-03 16:32:42

A
数组定义,不能用数组头做自增运算
int a[10]={0};
可以用a[i],或者*(a+i)循环读取里面的元素,但是不能用    *a++ 自增调用
B
当数组作为函数参数进行传递时,该数组自动退化为同类型指针。对应的指针可自增
void Func(char a[100])
{
printf("%d\n",sizeof(a));
}
C
堆(heap)内存的分配也一样
int *a=(int *)malloc(10*sizeof(int));
可以用a[i],或者*(a+i)循环读取里面的元素,但是不能用    *a++ 自增调用
 
错误代码
char *function (char *s)  //仅做实验 其实就是void strcpy(char *,char *)的实现
{
 char *w=(char *)malloc(10*sizeof(char));
 memset(w,0,10*sizeof(char));
 while(*w++=*s++)
     ;
 return w;
}
可以改为
char *function(char *s)
{
 char *w=(char *)malloc(10*sizeof(char));
 memset(w,0,10*sizeof(char));
 int len=strlen(s);
 int k=0;
 while(len--)
  *(w+k)=*s++,k++;
 *(w+k)=0;
 return w;
}
 
 
阅读(172) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~