C语言基础知识

来源:互联网 发布:柠檬网络电视tv免费版 编辑:程序博客网 时间:2024/06/04 00:32

C语言基础知识 - 笔记(一)

  1. 数据类型
    char—8位—127—255
    int—16位—32767—65535
    short—16位—32767—65535
    long—32位—2147483647—4294967295
  2. 在表达式中,P是指针,*P是指向它的内容
  3. 函数指针 V.S. 指针函数
    • 函数指针 int (*fun) ():本质上是一个指针,指向一个函数的地址,用于函数调用
    • 指针函数 int * fun ():本质上是一个函数,返回值是一个指针地址
  4. define、static和 typedef关键字
    • define
      define是C语言中的预处理命令,用于宏定义,提高源代码的可读性。预处理命令以#开头。在C或者C++中源程序允许用一个标识符表示一个字符串(可以是常数、字符串、表达式等),称为“宏”。用标识符代替字符串的过程叫做“宏替换”或者“宏展开”。宏定义分为带参数宏和不带参宏。
    • static
      可以修饰变量或者函数。由static修饰的变量只能在本文件中使用,变量存储在全局存储区中(不是堆栈中),仅在变量的作用范围内可见。能不用尽量不用。
    • typedef
      用途一:定义一种类型的别名,而不是简单的宏替换
      用途二:与struct一起使用
      用途三:定义平台无关的类型
      用途四:为复杂的声明定义一个新的简单的别名
  5. sizeof和strlen
    • sizeof
      单目运算符,以字节的形式给出操作数的存储空间的大小
      sizeof的操作数可以是数据类型、函数、变量、表达式。注:对函数求值其结果是函数返回类型的大小
    • strlen
      C语言标准库提供的一个函数,用于计算字符串长度。它的参数必须是char * ,需要依赖字符序列中的’\0’来判断是否结束。
  6. 字符串函数:
    • strcpy(char * destin, char * source):字符串拷贝
    • strcat(char * destin, char * source):字符串拼接
    • strcmp(char * str1, char * str2):字符串比较,看ASC码,相等返回0
    • strrev(char * str):字符串倒转
    • strupr(char* str):将串中的小写字母转化为大写
  7. 按值传递、指针传递、引用传递
    • 按值传递(两个指针指向两个地址)
      仅仅是把值拷贝到了另一个内存地址上,并没有改变原来变量(地址上)的值。
    • 指针传递(两个指针指向一个地址)
      改变一个新指针的指向,使之指向原来变量的地址,通过改变新指针指向内容可以改变原来变量的值。
    • 引用传递(一个指针指向一个地址)
      直接传递原变量的地址,通过修改内存地址上的值可以改变变量值
  8. 结构体、枚举、联合
    联合本质上是所有成员叠加的结构体,某一时刻只能使用一个成员,联合体的大小是它最大成员的大小,而结构体的大小是所有成员大小的和
  9. 位域
原创粉丝点击