这几天在学习C语言,零零散散的学了十来天,这两天由于家里来了朋友,也没有顾得上写个总结,今天刚把朋友送走,下面就把这十来天的学习情况总结一下,一边在以后好复习与查看。

一、流程控制包括:顺序语句、判断语句、循环语句

二、数组、函数的地址表示方法是直接写变量名,其他的前面加 & 符号(目前我所知道的是这样,以后发现再补充)

      例: int array[5];   //int数组

        array 表示指向数组首元素的地址的指针

        *array 表示首元素的值(通过地址的方法求值)

        *(array+i) //i=0、1、2、3、4....   这表示数组中的某一个元素的值

      

      结构体指针调用其成员:

        例:

          struct student

            {

              int id;

              char sex;

              int age;

            }sd;

          struct student *sd1;

          sd1->id;

          sd1->sex;

          sd1->age;

union(共用体标识符)

typedef(用来定义新的数据类型名来替代已有数据类型名)格式:typedef 源数据类型名 新数据类型名

预处理命令:文件包含命令,条件编译命令和宏定义命令

******:宏名一般使用大写字母,为了与变量名区别

    宏函数:格式如下 #define 宏函数名(参数表) 字符串

          例:#define M(x,y) x*y;  //调用时就像调用有参函数一样 sum = M(int a,int b);

注意:宏的取消用#undef  、续行符:“\”

条件编译:

  (1) #if(n)def 标识符                  //当不带n时,标识符被宏定义过,就执行代码段1,否则执行代码段2;

       代码段1;                      //当带n时,当标识符没有被宏定义过,就执行代码段1,否则执行代码段2;

      #else

       代码段2;

      #endif

  (2) #if  常量表达式1               //此条件编译类似于if-else语句的用法

        代码段1;

     #elif 常量表达式2

        代码段2;

     #elif 常量表达式3

        代码段3;

      ....

     #else

        代码段n;

      #endif

动态内存(也叫堆内存)的分配主要用到三个函数:malloc(); calloc(); realloc();

    malloc(); 格式如下:void * malloc(unsigned int size);

            size表示分配的字节数。

           例:int * p=(int *)malloc(sizeof(int)*100);  //分配100个int类型的内存空间

              注意:因为不能将"void*"赋值给"int*"类型的指针变量,所以必须通过(int*)来将进行强制转换。函数的实                                    参为sizeof(int),用于指明一个整形数据需要的大小。

    calloc(); 格式如下: void * calloc(unsigned int n,unsigned int size);

             对比上面便可以明白:int * p=(int *)calloc(100,sizeof(int);  //分配100个int类型的内存空间

    realloc();格式如下:void * realloc(void * mem_addr,unsigned int newsize);

            mem_addr是指需要重新分配的堆内存指针,newsize是指重新分配后的空间的大小。该函数的作用是先释放原来                        men_addr所在的内存区域,并按照newsize指定的大小重新分配空间,同时将原有的数据从头到尾拷贝到新分配的          内存区域,并且返回该内存的首地址,即重新分配动态存储,日过重新分配成功则返回指向被分配内存的指针,否则返回空指针。

           例: int * p=NULL;

              p=(int *)malloc(sizeof(int)*10);  //先分配10个int类型的内存空间

              p=(int *)realloc(p,sizeof(int)*10);  //重新分配100个int类型的内存空间

             

      

C语言基础知识小总结(1)的更多相关文章

  1. C语言基础知识小总结(2)

    上个总结比较笼统,下面写的稍微详细点吧算是.   一.控制台屏幕打印 1.putchar();   格式: void putchar(char c);  //直接把一个字符输出到屏幕上 2.print ...

  2. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  3. java基础知识小小结

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  4. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  5. C语言基础知识-程序流程结构

    C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...

  6. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

  7. C语言基础知识-数据类型

    C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...

  8. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  9. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

随机推荐

  1. [转贴]gsoap使用心得!

    最近换了个工作环境,现在在大望路这边上班,呵,刚上班接到的任务就是熟悉gsoap!废话少说,现在开始gSoap学习! gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在W ...

  2. C# 如何为应用程序加入多个图标?

    对于WINDOWS XP操作系统,浏览文件时有列表,图标和平铺三种,显示出文件图标的大小分别为16x16,32x32,48x48这三种尺寸.有些程序包含这三个尺寸的图标,随着浏览文件时的设置来选择尺寸 ...

  3. 【HDOJ】1031 Design T-Shirt

    qsort直接排序. #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXN ...

  4. POJ_2503_Babelfish_(Trie/map)

    描述 http://poj.org/problem?id=2503 给出一个字典,求翻译,翻译不了输出eh. Babelfish Time Limit: 3000MS   Memory Limit: ...

  5. 替换SQL Server字段中的换行符,回车符

    replace(string_expression , string_pattern , string_replacement) 第一个参数:要查找的字段. 第二个参数:要查找的字符. 第三个参数:要 ...

  6. 转载--Linux命令top动态观察程序的变化

    转载:http://www.cnblogs.com/allen8807/archive/2010/11/10/1874001.html top:动态观察程序的变化 [root@linux ~]# to ...

  7. 监控Tomcat并启动

    #!/bin/sh export _JAVA_SR_SIGNUM= export JAVA_HOME=/usr/java/jdk1..0_11 export CATALINA_BASE=/home/c ...

  8. python 零散记录(六) callable 函数参数 作用域 递归

    callable()函数: 检查对象是否可调用,所谓可调用是指那些具有doc string的东西是可以调用的. 函数的参数变化,可变与不可变对象: 首先,数字 字符串 元组是不可变的,只能替换. 对以 ...

  9. Uoj #131. 【NOI2015】品酒大会 后缀数组,并查集

    #131. [NOI2015]品酒大会 统计 描述 提交 自定义测试 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项, ...

  10. ubuntu12.04下使用qemu模拟mips处理器安装debian

    注:ubuntu是不支持mips处理器的,只能在x86下安装运行第一步.安装qemu sudo apt-get install qemu qemu-system .执行 qemu-system-mip ...