C语言指针

指针:地址   就是一个数字;

指针变量:保存地址这个数值的容器;

char *p1 = “abc”;

char data[5];申请5个char的基本类型,用data数组名来标记这五个类型的首地址,data的值无法标记5个空间,data的值仅仅是一个标签,不占用空间;

标识    空间属性          地址    值

p1      addr 4B char     xxxx     ??;

data   常量地址           不占空间;

内存中有一段常量区域,“abc"在内存中不会改变,内存中存了abc0;

双引号默认有一个0结束符;c语言用了匿名存了常量的地址名,用*把地址取出来存入p1;

cha * p1= "abc";用双引号代替abc的首地址,有变量名的话可以用&变量名;

char *p2="abc",常量空间中abc不会单独开辟,只是多开了一个p2,p2存入的是abc的首地址,p1==p2;//p1,p2里存的值一样;

&p1!=&p2;//但p1p2的地址不一样;

char buf[] ="abc";//双引号也表示常量空间中的abc;初始化buf为4个char;对这四个空间逐一赋值;//buf 是一个常量在内存之还是标记了一段空间来存abc0;相当于一个是只读”abc0“一个可变”p1;

这个容器的名称(标识),在哪(地址),存什么(值),干什么(类型);

1、在一行中能作为变量名的标识;

char *fun1(int);

2、以它为中心点,先向右看,再向左看;

3、只要能够明确这个变量标识符对应的属性这个变量名C语言编译器就认识;

            映射表

标识   空间属性                                                                                       地址                 值

a1   char 1B                                                                                             0x12312          97;

a2   数组名,常量地址,数值32/64位怎么操作char                               无空间储存       值是在刚定义的时候固定的 ;

p1   指针变量(保存地址容器),容器大小,地址怎么操作 char,char   0x12312          ?p1=char *)&a;

const char  *p;//const 只读的,一个char一个char的走,是一个字符串;

printf(const char *format);//当函数指向的空间不变,写上const,表示只读;传双引号要加const;无const会出现断错误;

char *strcpy(char *dest,const *src);//只要是不变的加const;

char  *const p3;//只读指针变量,p3存的值不能变化,只能初始化(赋值)一次,p3,地址可以变;只能初始化的时候赋值;//c++引用

const char *p2;//指针变量,保存地址的容器,大小和计算机操作系统位数有关,值是可以变的,指针的地址不可以变;

const char *const p4;//

函数名:一堆代码的首地址;//常量地址数组名和函数名和字符串;

”abcd“,

char *p1;

int a[3];

int *p2;

int b[4][5];

int (*p3)[5];

给二维数组int data[4][5],创建变量来保存数组名;

三维数组int data[4][5][6],创建变量保存数组名;

设计一个计算器,用函数指针;进制转换器;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值