编程中犯的错误

来源:互联网 发布:网络清洁器 编辑:程序博客网 时间:2024/05/17 10:40
1.指针赋值
    定义一个指针变量,如果要用它一定要给它分配空间。
如:
     int *p;   *p = 2;    错误
    struct abc{
        int dog;
        char *q;
    };
    struct  abc *tak;
    tak->dog = 2;         错误

针对上面两种错误的改进:
(1).把变量的地址赋值给指针
    int b;  int  *p;  p = &b;   *p = 2;    正确
(2).分配要操作的空间
    int *p;  p = (int *)malloc(sizeof(int));  *p = 2;    正确
    struct abc{
        int dog;
        char *q;
    };
    struct  abc *tak;
    tak = (struct  abc *)malloc(sizeof(struct  abc));
    tak->dog = 2;        正确

2.sizeof
    sizeof是一个关键字。
int  a;
A.  sizeof(int)
B.  sizeof(i)
C.  sizeof i
D.  sizeof int

上面A,B,C的写法都是正确的,D写法不正确,编译器不通过。
int  b;  sizeof(b);                         //整形,32位机,占个字节
char  *b = "qiao";  sizeof(b);     //指针,占4个字节
char  b[ ] = "qiao";  sizeof(b);    //数组,字符串,占5个字节,包括“\0”。       
void abc(char b[ ]); sizeof(b);    //数组名作形参,相当于传递的是指针,占4个字节
 结构体要考虑,字节对齐
18 0
原创粉丝点击