C语言拾遗笔记01

输入和输出

    printf()打印的是字符串而不是整数

    #define _CRT_SECURE_NO_WARNINGS消除安全周期编译的影响

    %d %o %x 分别表示以十进制 八进制 十六进制显示数字

    %hd  %ho %hx short 类型整数

    C语言规定long 类型至少占32位

    \b退格

    sizeof 使用括号与否取决于运算对象是类型还是特定量,当是类型时括号必不可少,当是特定值时可有可无;

    %10d 表示输出结果有是个空格宽度,默认结果位于字段的右端

    %-10d 输出结果位于字段的左端;

    printf()函数有返回值,返回打印字符串的长度,如果输出有误则返回一个负值;   

    scanf()根据%d 每次读取一个数字字符 会跳过空白字符 当读取到非数字字符时,它便认为读到了整数末尾;

    scanf()根据%c 只读取第一个字符且该字符可以是空格;

                       %s把输入解释成字符串。从第一个非空白字符串开始,到下一个空白字符之前的所有字符都是输入;

    scanf()函数返回成功读取的项数;如果没有读取任何项,且需要读取一个数字而用户却输入一个非数值字符串,scanf便返回0;

printf和scanf的*修饰符

   printf():如果不想预先指定字段宽度,希望通过程序来指定,则可以用*修饰符代替字段宽度。但还是要用一个参数告诉函数,字段卷度应该是多少;

        scanf():把*放在%和转换字符之间时,会使scanf跳过相应的输出项;在使用scanf格式化输入时不能把\n加在字符串末尾,否则会需要多输入一个数据才会结束输入

不要自作聪明

如果一个变量出现在一个函数的多个参数中,不要对该变量使用递增或递减运算符

如果一个变量多次出现在一个表达式中,不要对该变量使用递增或递减操作符;

const定义常量,具有不可变性;

const定义常量指针 ,指针指向的内容不能改变,但可以指向其他地址int const *p; 或const int *p;这两种写法是一样的,表示p指向的内容是常量

1、常量指针说的是不能通过这个指针改变变量的值,但是还是可以通过其他的引用来改变变量的值的。

2、常量指针指向的值不能改变,但是这并不是意味着指针本身不能改变,常量指针可以指向其他的地址。

int *const p;

指针常量,指针本身是个常量,不能在指向其他的地址,可以通过指针改变其内容 int *const p; 表示指针p是个常量,它本身不可改变。需要注意的是,指针本身不可变,但指向的对象可变。

指向常量的指针常量,const int *const p; 表示指针本身不可变,也不能通过指针修改所指向地址的内容。需要注意的是,依然可以通过其他引用修改该指针指向地址的内容。

如上图所示 常量指针x只能改变其指向地址而不能通过指针改变其值,而指针常量y则相反;只能改变值,而不能改变指向;

for循环的第一个语句不一定是给变量赋初值,也可以使用printf语句,在执行循环的其他部分之前,只对第1个表达式求值一次或执行一次。

根据C语言标准     case后的常量不能为浮点数

getchar()和putchar()用法:

getchar()每次只读取处理一个字符

putchar()将读取到的字符打印输出

C语言中自定义一个函数之前需在程序头部声明函数,声明时形式参数类型要给出

猜你喜欢

转载自www.cnblogs.com/lzynxh1314/p/9425410.html