Bootstrap

chapter four in C primer plus

limits.h 系统无关头文件,确认指定类型数据的最大最小等常量值

 

1、 char数组:

        c中没有为字符串(character string)定义专门的变量类型,而是将其储存在char数组中。char数组的最后一个位置显示: \0  表示 空字符 null character 用以标记字符串的结束,器ASCII码也为0

打印%s

2、scanf() 函数值读取从开始输入直到第一个空白字符串截至的数据。

        如果输入: ke   wor  ,只会将ke进行赋值操作,之后的内容会被丢弃掉

        返回值: 返回值为成功读取到的数据个数;如果没有读取成功,则数据还会存在于缓冲之中

        scanf(“%d”,&input);        如果input输入数字那么返回值为1,如果输入除之母之外的数据则返回0;

3、strlen()  以字符为单位给出字符串的长度,不包括末尾空字符。lemon 5个字符

4、sizeof :

        如果是获取类型的大小,那么括号是必须的 sizeof(float)  sizeof(name)

        如果是获取具体量的大小,那么括弧是可选的,可有可无  sizeof name sizeof 6.24

5、printf("控制描述",变量列表);

        如果要打印% ,则需使用 %%

        使用% 为转换说明符

        %e 科学计数法

        %10d 长度10位

        %.2f  保留2位小数

6、printf 返回值:

        正确解析: 返回字符的数目

        错误解析: 返回一个负值

        可用于检查是否输出错误

7、printf 参数传递

        

int main()
{
    float n1 = 3.0;
    
    double n2 = 3.0 ;

    long n3 = 2000000000;

    long n4 = 1234567890;

    printf("%ld %ld %ld %ld \n",n1,n2,n3,n4);
    
    // 0, 1074266112 , 0 ,1074266112

}

 参数传递工作原理:

        以上调用告诉计算机把变量的值传递给计算机,计算机会把这些值存放在堆栈 stack的一块内存区域来实现。    压栈的方式是按照变量的类型来进行放置的,而不是依据转换说明符的规则来放置的。因此n1、n2 分别占用八个字节,n3、n4 分别占用4个字节。printf函数从堆栈上按照转换说明符的规则取得内存区域的数据,由于%ld 说明符号占用4个字节,因此会取得n1 前半部分的4个字节,后面的四个字节没有被读取到,依次类推后面的数据读取也将会发生错误。

 8、scanf

        参数使用指向变量的指针来实现

        使用空白字符来决定应该把参数分割为几个变量作为输入。

        变量和转换说明符的数据类型应该保持一致。

        如果变量和转换说明符的数据类型不一致,那么将会在不匹配的地方停止匹配,而不会跳过。程序将会阻塞。

9、scanf 返回值:

        返回读取到的变量的数目,

        如果没有读取到,返回值为0

        如果读取到文件的结尾,则返回EOF

10、

;