Linux C一站式编程(第八章 数组)

  • 数组名做右值(等号右边)使用时,自动转换成指向数组首元素的指针。作为左值,依旧是数组类型。
int a[5], b[5] = { 4, 3, 2, 1 };
a = b;

a = b这个表达式,a和b都是数组类型的变量,但是b做右值使用,
自动转换成指针类型,而左边仍是数组类型,所以编译器报的错误信息是
error: incompatible types in assignment。
  • gcc -E:显示预处理后的代码; 以#开头的命令为预处理命令 ; 采用#define,可以有效的避免硬编码(Hard Coding)

  • gcc -D:进行条件编译;

#include<stdio.h>

int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    int c=a+b;
    #ifdef CC
        a=4;
        b=9;
        c=a+b;
        printf("%d\n",c);
    #endif

    printf("%d\n",c);
}

gcc -DCC text.c 那么,得到的结果就会执行ifdef,13 13;
gcc text.c 那么,不会进行编译;
  • C语言的伪随机数:

    • 计算公式:线性同余(LCG),rand()得到
    • 初始值:称为Seed(全局变量),可以用srand函数指定Seed。通常我们通过别的途径得到一个不确定的数作为Seed,例如调用time函数得到当前系统时间距1970年1月1日00:00:00[17]的秒钟数,然后传给srand:srand(time(NULL));调用time函数需要包含头文件time.h,这里的NULL表示空指针。
  • 字符串以’\0’结尾,对于字符类型,如果没有赋初始值,那么默认初始值为’\0’(0)。

猜你喜欢

转载自blog.csdn.net/lansehuanyingyy/article/details/81408414