2015.12.13 二维数组 函数指针 结构体

  先说一下指针的用途:1.访问函数,在函数内部需要改变外部传入内部的值;2.函数中需得到一个连续存储空间的首地址;3.动态分配内存,需要记录分配内存的首地址。说穿了,指针的用途就是和地址相关的


二维数组

定义方法  ①int temp1 [2][3] = {};  第一个中括号是“行”,第二个中括号是“列”

      ②int temp2 [][3] = {1,2,3,4,5,6};  “列数”不需要明确指出

      ③int temp3 [2][3] = {1,2,3,4};  后两个元素为0

  char *name[];   这种声明,未分配内存空间。

  字符串的交换不能直接用正常变量的方法进行交换。用<string.h>这个头文件中“strcpy( , )”(逗号后面的将字符串复制给逗号前的字符串)。

    图片中的函数就是用自己的方法将“strcpy”函数重新写了一遍。


函数指针

int add (int a,int b){

}

int (*pfunction)(int,int) = add;  //函数指针

int result = pfunction(3,4);

pfunction = aadd;  //指向另一个函数


 

结构体

  将多种类型的数据用一个类型来表示,但是只能声明变量,不能赋初值。

  eg.  这个就是一个结构体,其中“typedef”是类型重定义,相当于给一个别名。

  结构体的访问用“.”来访问

结构体指针

Student *s;

如果*name是字符串      s->name = "xiaowang";  结构体指针用“->”来访问

如果name[]是数组接收  strcpy(s->name,"xiaowang");

s->age = 23;

 

Student *s[5]; //每一块都存着结构体的地址

Student xw ={"xiaowang",2345,23,164.3};

s[0] =&xw;  //结构体指针数组里面的每一个都存着地址,如果不给他内存地址,它的值就为空,不可直接赋值。

s[0]->age = 20;

 

结构体数组

Student array[5] ={};

strcpy(array[0].name,"xiaowang");

array[0].age = 23;

 

posted @ 2015-12-13 14:17  芥末勾勒  阅读(567)  评论(0编辑  收藏  举报