15.数据类型

1.防止头文件重复包含

#pragma once

2.VS

兼容C++编译器,如果是C++编译器,按C标准编译;

#ifdef __cplusplus   //内部定义宏
extern "C"
{
#endif


#ifdef __cplusplus
ertern "C"
}

#endif

3.如果数组作为函数参数,数组形参会退化为指针;

4.数据类型

5.void无类型

(1).函数为空,定义函数时,可以用void修饰;

(2).函数没有返回值;

(3).不能定义void类型普通变量,无法确定类型,不同类型分配空间不一样;

(4).可以定义void *变量:void *p;   //32位永远4字节,64位永远8字节;

(5).数据类型本质:固定内存块大小的别名;

(6).void *p万能指针,函数返回值,函数参数;

 6.内存四区模型

(1).全局区

(2).堆区

(3).栈区

 7.间接赋值

 (1).值传递,形参的任何修改不会影响到实参;

(2).地址传递,形参的(通过*操作符)的任何修改会影响到实参;

用1级指针形参,去间接修改了0级指针(实参)的值。

用2级指针形参,去间接修改了1级指针(实参)的值。

用3级指针形参,去间接修改了2级指针(实参)的值。

级指针形参,去间接修改了(n-1)级指针(实参)的值。

 8..c文件->可执行程序

9.二维数组

 char a[4][30]:

4个a[30]的一维数组,二维数组;

定义二维数组,不写第一个[],必须先初始化;

a代表首行地址(加1步长加一行,下一行的首地址)和首元素(加1加一个元素的大小)地址有区别;

char b[30];
printf("&b:%d,%b+1:%d\n",&b,&b+1);//首行地址
printf("b:%d,b+1:%d\n",b,b+1);//首元素地址

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-01-16 22:00  西贡小傻  Views(156)  Comments(0Edit  收藏  举报