数据类型
- 基本数据类型:short(2)、int(4)、long(8)、char(1)、float(4)、double(8)
字符串
char * str = "aaaa";
printf("%s",str);
指针
- Java:万物皆对象;
- C、C++:万物皆指针;
- Linux:万物皆文件;
- 指针 == 地址;%p是地址站位输出符
- 任何都是地址,函数、对象都是地址
- *就是取出地址的值
- &就是变量对应的地址
- 指针永远都是存放内存地址
- 函数必须先申明再使用
- c语言不允许函数重载
交换
多级指针
int num = 99;
int * num_p =
int ** num_p_p =
//多级指针取回原值:
printf("%d",*num_p);
printf("%d",**num_p_p);
- 指针存放的是内存地址
-
指针也有地址,自己的内存地址:&p
数组与数组指针
int arr[] = {1,9,3,4};
arr == &arr == &arr[0] 这三个值相等
数组的内存地址 =第一个元素的内存地址
-
*arr 可以用来取出第一个元素的值
-
通过指针位移来取数组的值
-
遍历数组赋值
*arr 1
*arr+1 2
*(arr+1) 9
-
指针类型有什么用
函数指针
void(*method)(int,int)
//实现回调
#include "stdlib.h";
int add(int num1, int num2) {
return num1 + num2;
}
int oprate(int(*method)(int, int), int num1, int num2) {
return method(num1, num2);
}
int main() {
int result = oprate(add, 1, 2);
printf("输出结果为%d", result);//3
}
-
文件上传