指针和数组
const int *p; int const *p; int *const p; const int *const p;
常量指针 常量指针 指针常量 常量指针常量
*p不变 *p不变 p不变 p和*p都不变
char *p="abcdef"; p指针占有4字节,其字符串存储在静态区
char a[]="12345\0"; a数组占有7字节,其字符串存储在栈上面
这样定义即字符串数组,使字符串结尾有'\0',
编译器还是会在字符串后面加上'\0'
a = &a 但是意义不同
a 代表a[0]元素的地址
&a 代表 a 数组的地址
sizeof(a)=7 计算a数组的大小
sizeof(&a)=4 gcc中始终等于 4 (无论是什么数组)
a+1 等于 a[1]的地址
&a+1 等于 a[sizeof(a)+1]的地址
指针和指针的减法运算有意义:间隔距离是多少个单位(基类型宽度)
指针和整数的加减运算有意义:以基类型宽度为单位移动指针
定义为数组,声明为指针;定义为指针,声明为数组,这两种都是错误的.
文件1:
char a[100]; char *p= "abcdef";
文件2:
extern *a; extern char p[];
函数指针
(*(char**(*)(char**,char**))0)(char**,char**);
char *(*pf[3])(char *p); 函数指针数组
char *(*(*pf)[3])(char *p); 函数指针数组的指针
2.1 C语言数组与指针
猜你喜欢
转载自blog.csdn.net/u013845608/article/details/85617555
今日推荐
周排行