黑马程序员_C语言类型方面初学者容易忽视的几个知识点
2014-06-18 12:02
447 查看
------- 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 <string.h>
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;
一、关于数组的初始化: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 <string.h>
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;
相关文章推荐
- C语言中的几个容易混淆的知识点总结
- 黑马程序员——C语言知识小节------初学者容易忽略的知识点
- C语言中的几个容易混淆的知识点总结
- 黑马程序员——C语言学习笔记01 一部分容易忽视的概念
- JS干货--几个容易忽视的知识点
- [黑马程序员]10[C语言]C语言基本语法与基本语句部分需要注意的几个知识点
- Java初学者容易混淆的知识点
- 容易忽视的oracle函数问题--数据类型
- Java初学者容易混淆的几个问题详细解析
- Java初学者容易混淆的几个问题
- 《ERP从内部集成起步》读书笔记——第9章 实施ERP容易忽视和误解的几个问题 9.4支持源于受益
- MyISAM几个容易忽视的配置选项
- 抄书:C语言中字符类型使用中的几个误区
- c语言的几个重要知识点
- 《ERP从内部集成起步》读书笔记——第9章 实施ERP容易忽视和误解的几个问题 9.1信息化战略与企业经营战略
- 《ERP从内部集成起步》读书笔记——第9章 实施ERP容易忽视和误解的几个问题 9.2信息化的需求与目标
- Java初学者容易混淆的几个问题
- Java初学者容易混淆的几个问题
- C语言分配内存时一个容易被忽视的坏习惯。
- 综合布线容易忽视的几个问题