黑马程序员_C语言类型方面初学者容易忽视的几个知识点

------- IOS培训、IOS培训、期待与您交流! ----------


一、关于数组的初始化:1、如果未定义数组大小,则必须在定义同时为元素赋值。

例如:int a[] = {2,4,6};//这时数组大小为每个元素大小的和。

    2、如果用变量定义数组大小,则不可以在定义同时初始化。

例如:int size = 5;

    int a[size] = {1,2,3,4,5};//这种写法是错误的,由于size为变量,所以不可以定义同时初始化。

----------------------------------------------------------------------------------------------------------------------------------------------------------

二、字符数组与字符指针的区别:1、如果定义字符数组用来存储字符串,那么这个字符串的内容可更改

例如:char a[] = "abcdefg";//这时,a中的内容可以更改;

//更改方式一:单个字符修改

a[3] = 'K';

//更改方式二:批量修改,这时要利用string.h中的strcpy给字符串赋值

#include

strcpy(a,"okokok!");//新的字符串要小于或等于字符数组的值,否则程序可能会崩溃

2、定义字符指针来存储字符串,那么该指针指向的内容被存在程序的常量区,即一旦赋值,内容不可更改。

例如:char *a = "ok123";

*a = "abc123";//这句是错误的

----------------------------------------------------------------------------------------------------------------------------------------------------------

三、指向函数的指针:函数也是有自己的地址的,所以指针也可以用来指向某一个函数。定义:返回值 (*p)(参数类型);

例如:int max(float b);

int(*p)(float) = max;//这时p与max指向相同的地址

int a = p(1.2f);//调用该函数,等同于int a = max(1.2f);

----------------------------------------------------------------------------------------------------------------------------------------------------------

四、结构体的几种定义方式:1、普通定义方式,定义一个自定义类型的结构体

例如:struct user

    {

int ID;//注意,这里不可以赋值

float price;

     };//不要拉下分号

    

    2、定义结构体的同时定义出一个该结构体的变量

例如:struct user

    {

int ID;

float price;

     }zhangSan;//相当于 struct user zhangSan;


    3、省略结构体名称

例如:struct//省略的该结构体的名称

    {

int ID;

float price;

    }zhangSan;

----------------------------------------------------------------------------------------------------------------------------------------------------------

五、结构体的嵌套:在结构体中定义别的结构体类型。注:不可嵌套自己。

例如:struct info{char name[], int age};

struct user

{

int ID;

struct info i;//嵌套info的结构体类型,正确

struct user u;//嵌套自己,错误

};

----------------------------------------------------------------------------------------------------------------------------------------------------------

六、枚举类型:枚举类型一般用于一组连续的整数,表示数组下标或者使某一个变量用途更明确。定义方法与结构体类似。注意,枚举只能表示整数,对于其他的类型,可以用宏定义。

例如:enum sex

    {

male,//变量在枚举中用整数表示,默认从0开始,注意分隔符用','

female,

natural//未确认

    }


enum sex s = female;//这时 s = 1;

你可能感兴趣的:(黑马程序员)