------- android培训、java培训、期待与您交流! ----------
总结的都是些我不明白,容易忘的,留着我忘掉的时候再来回头看看。
1,二进制
二进制 0b或者0B开头
八进制 O开头
十六进制 0x或者0X开头
打印:
int a = 12;
printf("%d\n",a);//十进制
printf("%o\n",a);//八进制
printf("%x\n",a);//十六进制
2,a与b交换
a = a +b;
b = a - b;
a = a - b;
//或者
a = a^b;
b = a^b;
a = a^b;
3,打印地址
int num = 10;
char *p = #
printf("第1字节地址:%p ,值:%d\n",p,*p);
printf("第2字节地址:%p ,值:%d\n",p+1,*(p+1));
printf("第3字节地址:%p ,值:%d\n",p+2,*(p+2));
printf("第4字节地址:%p ,值:%d\n",p+3,*(p+3));
int a[10] = {[3] = 11};// 0,0,0,11,0,0,0,0,0,0
char ch[10] = {'a','b','c'};
//以%d打印 :97,98,99,0,0,0,0,0,0,0
char str[10];
scanf("%s",str);
//以%s赋值时,注意空格,遇到空格,会被当成\0,则后续字符无法接收
char str2[10];
gets(str2);
//会报warning,无法判断输入的字符是否超过长度,会产生越界
char str3[10];
fgets(str3,sizeof(str3),stdin);//stdin 标准输入缓冲区
5,存储
1,静态存储区域分配:在编译时变好,全局变量与static量
2,栈上创建存储:局部变量
3,堆分配,动态分配:在运行的时候创建,数组与对象为堆分配,动态分配
c的5大区:栈,堆,bss(存储未初始化的全局变量或未初始化的静态变量),数据段(已初始化的全局与静态变量),代码段(编译后的代码)
6,指针函数与指针函数
指针函数:函数类型即为返回值类型,返回值为指针的的函数,即为指针函数
函数指针:
在C语言中,一个函数总是总用一个连续的内存区域,而函数名则是该函数所占内存的首地址,将该函数的首地址赋予 一个指针变量,则通过这个指针变量即可访问并调用这个函数,这类的指针变量即为函数指针。
初始化:
函数
int add(int x,int y){
//代码
}
int (*p)(int ,int);
p = add;