02.函数和指针
来源:互联网 发布:淘宝联盟如何省钱 编辑:程序博客网 时间:2024/06/06 17:55
宏 #define
宏只是一个单纯的替换,#define N 66 表示的是下面只要有N的地方,表示的都是66 ,但是给N赋值是非法的,N不可以改变
宏是没有类型的,你可以这样定义
#define T(a,b) ((a)*(b))
也可以这样
#define P(n) printf(“%d\n”,n);
只有你想不到的,没有宏替换不了的。
——————————————————————————————————————————————
只读变量 const
在定义只读变量的时候,一定要初始化
*****宏和只读变量的区别
1.宏是没有类型的,只是单纯的替换。
2.const修饰的是变量,不能直接引用内存空间
————————————————————————————————————————
数据类型的别名 typedef
用法:typedef 现有类型 别名
typedef int age 之后就可以用age来定义变量类型,比如 age age; 定义了一个int类型的变量,变量名是age
好处:
1.通过类型就知道变量存的是什么
2.方便记忆,方便阅读
————————————————————————————————————————————
字节:
变量在内存中占用的空间
sizeof();
————————————————————————————————————————————————
指针初步:
总感觉对于指针,说多少都不算多,这里算是C语言比较重要的地方了。
指针变量是个什么东西,里面不过是装了一个变量的地址,你可以通过这个空间的名字找到这个变量,也可以通过这个空间的地址找到这个变量,指针就是后面这种找法,不要把它理解为很难的东西。
1.对变量的三种操作: 读,写,取地址。
2.指针变量*p是一个四个字节,16进制,32位的装着地址的东西
3.指针如果装着一个家伙的地址,那么*p就是这个家伙的名字
4.指向指针的指针
也不过是个指针变量,不过里面装的是一个指针变量的地址。
5.指向只读变量的指针
const int *p 这个指针是指向只读变量的
int * const p 这个指针是只读的
const int * const p 这个指针是只读的,而且指向一个指针变量
*的三种作用:
1.左右都是数字,表示乘法
2.*的右面是地址,间接引用
3.定义变量的时候有*,定义一个指针变量
————————————————————————————————————————————————
数组:
数组就是系统分配一块连续的内存空间而且类型相同,是复合的数据类型。
定义一个数组 int as[元素数量] = {对元素初始化,没初始化则都为0};
数组的名字是一个常量,数组的名字在和sizeof还有&结合的时候,代表数组的整个空间
例如:int as[10]; sizeof(as) 的值为40,因为每个元素都是一个int,所以10个元素一共占40个字节
[]的三种作用:
1.定义变量的时候,[]代表定义一个数组
2.地址的右面有[]并且有数字,叫下表运算
3.函数的形参如果有[],代表这个家伙是一个指针
&as: 取整个数组的首地址
as : 首个元素的首地址(数组的名字)
用冒泡法,排序一个数组。
#include<stdio.h>
int main()
{
int as[10] = {213,456,123,123,124,345,134,213,123,123};
int i;
int j;
int shu;
for(j = 9; j > 0 ; j--)
{
for(i = 0; i < j; i++)
{
if(as[i] < as[i+1])
{
shu = as[i];
as[i] = as[i+1];
as[i+1] = shu;
}
}
}
for(i = 0; i <= 9; i++)
{
printf("%d\n",as[i]);
}
return 0;
}
————————————————————————————————————————————————————————————————————————
宏只是一个单纯的替换,#define N 66 表示的是下面只要有N的地方,表示的都是66 ,但是给N赋值是非法的,N不可以改变
宏是没有类型的,你可以这样定义
#define T(a,b) ((a)*(b))
也可以这样
#define P(n) printf(“%d\n”,n);
只有你想不到的,没有宏替换不了的。
——————————————————————————————————————————————
只读变量 const
在定义只读变量的时候,一定要初始化
*****宏和只读变量的区别
1.宏是没有类型的,只是单纯的替换。
2.const修饰的是变量,不能直接引用内存空间
————————————————————————————————————————
数据类型的别名 typedef
用法:typedef 现有类型 别名
typedef int age 之后就可以用age来定义变量类型,比如 age age; 定义了一个int类型的变量,变量名是age
好处:
1.通过类型就知道变量存的是什么
2.方便记忆,方便阅读
————————————————————————————————————————————
字节:
变量在内存中占用的空间
sizeof();
————————————————————————————————————————————————
指针初步:
总感觉对于指针,说多少都不算多,这里算是C语言比较重要的地方了。
指针变量是个什么东西,里面不过是装了一个变量的地址,你可以通过这个空间的名字找到这个变量,也可以通过这个空间的地址找到这个变量,指针就是后面这种找法,不要把它理解为很难的东西。
1.对变量的三种操作: 读,写,取地址。
2.指针变量*p是一个四个字节,16进制,32位的装着地址的东西
3.指针如果装着一个家伙的地址,那么*p就是这个家伙的名字
4.指向指针的指针
也不过是个指针变量,不过里面装的是一个指针变量的地址。
5.指向只读变量的指针
const int *p 这个指针是指向只读变量的
int * const p 这个指针是只读的
const int * const p 这个指针是只读的,而且指向一个指针变量
*的三种作用:
1.左右都是数字,表示乘法
2.*的右面是地址,间接引用
3.定义变量的时候有*,定义一个指针变量
————————————————————————————————————————————————
数组:
数组就是系统分配一块连续的内存空间而且类型相同,是复合的数据类型。
定义一个数组 int as[元素数量] = {对元素初始化,没初始化则都为0};
数组的名字是一个常量,数组的名字在和sizeof还有&结合的时候,代表数组的整个空间
例如:int as[10]; sizeof(as) 的值为40,因为每个元素都是一个int,所以10个元素一共占40个字节
[]的三种作用:
1.定义变量的时候,[]代表定义一个数组
2.地址的右面有[]并且有数字,叫下表运算
3.函数的形参如果有[],代表这个家伙是一个指针
&as: 取整个数组的首地址
as : 首个元素的首地址(数组的名字)
用冒泡法,排序一个数组。
#include<stdio.h>
int main()
{
int as[10] = {213,456,123,123,124,345,134,213,123,123};
int i;
int j;
int shu;
for(j = 9; j > 0 ; j--)
{
for(i = 0; i < j; i++)
{
if(as[i] < as[i+1])
{
shu = as[i];
as[i] = as[i+1];
as[i+1] = shu;
}
}
}
for(i = 0; i <= 9; i++)
{
printf("%d\n",as[i]);
}
return 0;
}
————————————————————————————————————————————————————————————————————————
0 0
- 02.函数和指针
- 指针函数和函数指针
- 函数指针和指针函数
- 指针函数和函数指针
- 指针函数和函数指针
- 函数指针和指针函数
- 函数指针和指针函数
- 函数指针和指针函数
- 指针函数和函数指针
- 函数指针和指针函数
- 指针函数和函数指针
- 函数指针和指针函数
- 指针函数和函数指针
- 指针函数和函数指针
- 指针函数和函数指针
- 函数指针和指针函数
- 函数指针和指针函数
- 函数指针和指针函数
- MySQL存储过程和函数
- 浅析MySQL索引
- SQL Union和SQL Union All用法
- 01.流程结构
- 浅谈MySQL的存储引擎
- 02.函数和指针
- MySQL 中LIMIT用法
- CMD登录MYSQL操作步骤
- MySQL常用函数
- (一) MySQL 查询分析
- Java WEB安全问题及解决方案
- Effective C++——》条款16:成对使用new和delete时要采取相同的形式
- (二) Schema设计优化 与 数据类型优化
- (三)创建高性能的索引