zoukankan      html  css  js  c++  java
  • C语言一些没记住总是google的

    JeffChen » C语言一些没记住总是google的

    C语言一些没记住总是google的

    1. Case后面只能跟整型或者字符型的常量或常量表达式

    2. 如果p1 和p2 指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。
    而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换。
    所以很多函数的参数是void*,这样能接受所有类型的指针.

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

    4. C99中,增加flexible array的定义

        typedef struct st_type
       {
          int i;
          int a[0];
        }type_a;
        

    或者写成:

        typedef struct st_type
        {
          int i;
          int a[];
        }type_a;
       

    5. 数组名不能作为左值,可以把a[i]当左值.

    6. 对指针进行加1 操作,得到的是下一个元素的地址,而不是原有地址值直接加1。所以,一个类型为T 的指针的移动,以sizeof(T) 为移动单位。

    7. int *p1[10]; 指针数组, 这是一个数组,其包含10 个指向int 类型数据的指针
    int (*p2)[10]; p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针

  • 相关阅读:
    五子棋项目
    判断是否是素数
    双链表
    九九乘法表
    栈和队列
    c排序
    蓝桥杯 接水问题 模拟
    蓝桥杯 调和数列问题
    蓝桥杯 Hanoi问题 递归
    蓝桥杯 排列问题
  • 原文地址:https://www.cnblogs.com/lexus/p/2875194.html
Copyright © 2011-2022 走看看