C基础知识--指针类型的常量
来源:互联网 发布:文明6 mac下载 编辑:程序博客网 时间:2024/05/01 16:48
Hi,大家好,楼猪又来更新了。最近有点偷懒,当然也是因为有些问题我自己也还没闹明白,所以不敢乱写。
不过我还是来啦,因为我很水的,写不出什么高深的DD来,啊哈哈~~~
先给大家贴个笑话看看
某程序员论坛,有一新会员发帖:我一直用C语言,不知道是否已经过时,现在好像都流行C++、C#之类的,我这把年纪了,现在学新语言还来得及不。某人热心回帖:C语言博大精深,其中的奥妙你还没领悟呢,还是把这个学精再说吧。众人纷纷附和。不知为何此帖十分火爆。若干楼之后,楼主回帖:我是谭浩强。
比较冷哈???冷冷更健康。
开工!!!
一、NULL
这是什么?==》(char *) 0
==》将整数0强制成指针型的常量
有什么用?==》可以用来表示指针没有指向任何目标,即久仰大名的“空指针”。
C编译程序已经用宏定义将它定义为符号常量存储在stdio.h文件中,名称为NULL,耳熟能详的NULL呀!!!
二、指针和无符号整数
计算机系统中的地址实际上是一个无符号整数。
模仿(char *)0,就可以将一无符号整常量经过强制类型转换后变成指针常量。
三、指针与字符串常量
C语言中没有字符串类型的数据,所有对字符串的处理都是基于最原始的存储结构即字符数组来完成的,而字符数组就是字符指针。
所以也可以说,C语言中所有对字符串的处理都是通过字符指针来完成的。
而当我们在程序中引用一个字符串常量时,实际上是获取指向该字符串常量首地址的字符类型的指针常量。
#include<stdio.h>void mystr(char *s1,char *s2){printf("%s\n",s1);s2 = s1;printf("%s\n",s2);}int main(void){char *p;mystr("Hello!!!",p);}
程序运行截图:
当我们以 mystr("Hello!!!",p); 调用函数mystr时,实际上给mystr函数传入两个参数,一个是指向存储字符串常量"Hello!!!"的存储区域的首地址的指针常量,另一个指针变量p的值。
BTW,在C程序中写用双引号括起来的字符串常量时,C编译程序会在程序代码的常量区为该字符串常量预留一块存储区域,该存储区域的大小正好等于字符串常量中字符的个数+1,并将字符串常量中的字符顺序存入该区域中并在最后加‘\0’作为字符串的结束标志。
感觉啥也没说。。。。另外,好像指针点击率比较高,我写的不好,我只是整理自己的学习过程,不是为了赚大家的点击率,如果您碰巧被标题吸引进来又觉得啥有用的都没看到,请息怒吧。。。我尽力了。。。
- C基础知识--指针类型的常量
- 指向常量的指针,指针常量,void类型指针
- 指向常量的指针和指针类型的常量
- 【C/C++】常量指针、指针常量以及指向常量的指针常量
- 【C/C++】常量指针、指针常量以及指向常量的指针常量
- 【编程语言】C++----常量指针与指针常量的区别
- C语言:指向常量的指针 和 指针常量
- 【C++】由指针常量和常量指针引发的问题
- C指向常量的指针和指针常量
- C/C++常量指针和指针常量的区别
- 【C/C++语言】指针常量与常量指针的区别
- c++,常量指针和指针常量的区别
- C/C++ 指向常量的指针和常量指针
- 指针、常量和类型别名的困惑
- 常量指针、指针常量、C++类型转换
- c语言中的字符类型指针赋值字符串常量
- 常量指针,指针常量,常量指针的指针常量
- 常量指针,指针常量,常量指针的指针常量
- 触摸屏驱动之滤波函数
- 网页显示高亮代码简易方法
- Delphi TList使用
- rsyslog配置动态日志文件-template补丁
- Android:JNI Local Reference Changes in ICS
- C基础知识--指针类型的常量
- POJ 2823(双端队列)
- sscanf用法
- python2.7.1编码问题
- VMware Linux安装RAC出现Failure at final check of Oracle CRS stack 10的解决
- 【Android】屏幕适配——屏幕规格与分辨率对照表
- Fermat素性测试, Miller-Rabin素性测试
- C语言代码优化
- SICP习题解答2.1-2.6