zoukankan      html  css  js  c++  java
  • c语言小知识点

    大一时学c语言,总结的一些自己感觉很零碎且容易忘的知识点,不对之处请指正

    1、字符串不管中间是否有数值0,结尾一定有数值0
    2、浮点类型的变量存储并不精确
    3、printf格式串自动右对齐,加负号左对齐
    4、scanf格式串的空格可与输入的任意空格匹配,包括0个
    5、负数i%j结果符号与i相同
    6、i*=j+k等同与i=i*(j+k)
    7、fmod函数可用于浮点数取余
    8、自增自减可用于浮点数
    9、else遵循就近原则
    10、switch比if执行速度快
    11、switch后只能跟整形表达式,不能是浮点数和字符串
    12、case后只能是整数或字符
    13、可以把多个case放置在同一行
    14、标号前可以不加case
    15、三元运算符遵循类型转换
    16、for语句可声明多个变量,但类型必须是相同类型
    17、break可用于switch和循环,continue只能用于循环
    18、goto必须和标号后的语句处于同一个函数
    19、goto的标号后必须有语句,如果没有,可用空语句解决
    20、类型的说明符顺序没有影响
    21、加0表示8进制,0x表示16,读写用o是八进制,x是十六进制
    22、double类型,scanf用lf,printf可用lf,但l不起作用
    23、可用signed或unsigned修饰char类型
    24、ctype.h中的toupper可讲小写转换成大写
    25、sizeof应用于表达式可不加括号,转换说明用lu
    26、数组从0开始,出于不对称和运算速度考虑
    27、数组元素可能被多次初始化
    28、函数不能直接返回数组
    29、函数可以有多条return语句,返回调用点
    30、传递数组,不加方括号
    31、二元数组只能省略第一维
    32、(int[]){……}/(struct part){……}复合字面量
    33、return后不跟表达式,可出现在void函数中
    34、exit函数在stdlib库中
    35、exit在哪个函数中都会终止程序,return只能在main函数会终止程序
    36、函数定义不能嵌套,可以放另一个函数声明
    37、指针可以和其他变量一块声明
    38、相同类型指针可以赋值
    39、向scanf误传入变量的值,会被当成地址
    40、指针可用%p显示
    41、int * const p保护p的对象,const int * p保护p,const int * const p同时
    42、++优先级高于*,++运算符的副作用容易引起错误
    43、指针可以进行取下标操作
    44、可改变类型的声明必须在函数或函数原型中
    45、sizeof(a)中,a为数组大小,不是指针大小
    46、字符串字面量后面加,可以在下一行延续
    47、printf中多个字符串字面量可以合并成一个
    48、字符串字面量可以取下标
    49、strlen包括空格,不包括结尾字符0,第一个空字符前字符个数
    50、sizeof计算字符串大小,即使字符串中间有字符0,也计算整个长度
    51、字符数组可以改,字符指针不可以改
    52、puts会自动添加换行符
    53、scanf读取字符串会在开始前跳过空白字符,gets不会
    54、gets直到换行符停止,忽略掉换行符,scanf在空白符停止
    55、用strcpy为字符数组赋值
    56、可以printf(字符串),只是如果字符串有%会作为转换说明的开始
    57、编写开头:#ifdef+#define+……+#endif
    58、预编译要想换行必须在末尾使用/
    59、预编译指令中可以插任意空格或制表符,指令可以出现在任何地方
    60、宏定义中的替换列表可以为空。带参数的宏参数可以为空,调用的参数也可以为空
    61、带参数的宏的名字与参数列表错括号之间没有空格
    62、#可以独占一行,作为空指令
    63、头文件只放声明,不放定义,放结构、函数、宏定义
    64、结构可以用=复制
    65、可以返回指向static变量的指针
    66、静态存储期限的变量默认是0,static、extern、外部变量
    67、register变量不能用&
    68、const对象不能用于常量表达式
    69、静态存储期限的变量的初始化式必须是常量
    70、不是static的复合数据结构初始化式可以是变量
    71、测试赋值表达式的值就是测试赋值的值
    72、格式串左对齐会就一个空给正负号
    73、多维数组初始化可以省略最左边的下标
  • 相关阅读:
    __ATTRIBUTE__ 你知多少?【转】
    mount源码分析 【转】
    linux下共享内存mmap和DMA(直接访问内存)的使用 【转】
    mmap DMA【转】
    内存映射MMAP和DMA【转】
    进度条,随机数---demo笔记【原创】
    Linux内核抢占与中断返回【转】
    内核随记(三)--同步(1)【转】
    内核随记(三)--同步(2)【转】
    理解Linux中断 (1)【转】
  • 原文地址:https://www.cnblogs.com/zqy123/p/5229650.html
Copyright © 2011-2022 走看看