C指针笔记
来源:互联网 发布:java native作用 编辑:程序博客网 时间:2024/06/03 18:13
C指针笔记(GCC编译器)
分享下C学习过程中指针的用法,暂时也就分析一级指针。
其实呢,指针变量说白了就是一个变量,只是存储的内容是一个地址罢了。
下边举例说明一些常见的问题,
字符串就是一个地址
下边这是一个关于转换进制的问题,把10进制转换为16进制输出,
可能这样程序在实际开发中用的不太多吧,但是我感觉对理解知识应该起到不少的作用
取地址后第N个字节中的内容等价于数组 跟 *(首地址 + n); 差不多是等价的
下边这个是大家熟悉的hello,world
估计这俩程序在开发中是真没出现过,不过这能让你知道一件事,那就是C中的字符串就一地址罢了。
C语言中指针跟数组的区别
第一个错误:对一个数组名赋值,(如果是指针赋值很正常);
第二个错误:把字符串拷贝到了一个只读常量区。
第二个错误:对一个数组名赋值,跟第一个错误一样。
"c语言中对于一个数组我们只能做两件事,确定该数组的大小,以及获得指向该数组下标为0的元素的指针。" ----摘自《C陷阱和缺陷》
持续更新,以后慢慢补充,时间有限,
其实呢,指针变量说白了就是一个变量,只是存储的内容是一个地址罢了。
下边举例说明一些常见的问题,
字符串就是一个地址
下边这是一个关于转换进制的问题,把10进制转换为16进制输出,
可能这样程序在实际开发中用的不太多吧,但是我感觉对理解知识应该起到不少的作用
1 #include<stdio.h> 2 int main() 3 { 4 int n; 5 scanf("%d",&n); 6 printf("%c\n","0123456789ABCDEF"[n]); 7 return 0; 8 }</span>上边这个例子中说明,字符串"0123456789abcdef"就是一个地址,地址后跟[n]说明
取地址后第N个字节中的内容等价于数组 跟 *(首地址 + n); 差不多是等价的
下边这个是大家熟悉的hello,world
1 #include<stdio.h> 2 int main() 3 { 4 char *p = "hello,world\n"; 5 printf(p,0); 6 return 0; 7 }</span>
估计这俩程序在开发中是真没出现过,不过这能让你知道一件事,那就是C中的字符串就一地址罢了。
C语言中指针跟数组的区别
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char *p = "123"; 6 char arr[] = "123"; 7 8 p = "456"; 9 // arr = "456"; 10 11 // strcpy(p,"456"); 12 strcpy(arr,"456"); 13 14 p++; 15 // arr++; 16 return 0; 17 }上边程序中,注释的地方都是错误的,由此可见C语言中数组跟指针还是有一定的区别。
第一个错误:对一个数组名赋值,(如果是指针赋值很正常);
第二个错误:把字符串拷贝到了一个只读常量区。
第二个错误:对一个数组名赋值,跟第一个错误一样。
"c语言中对于一个数组我们只能做两件事,确定该数组的大小,以及获得指向该数组下标为0的元素的指针。" ----摘自《C陷阱和缺陷》
持续更新,以后慢慢补充,时间有限,
0 0
- C指针笔记
- 《c和指针》笔记
- C 指针学习笔记
- C和指针笔记
- 《C和指针》笔记
- c 和 指针(笔记)
- C指针学习笔记
- C和指针笔记
- 《C和指针》笔记
- C与指针 笔记
- C指针学习笔记
- C指针笔记
- C语言‘指针’笔记
- 《C和指针》笔记
- c语言指针笔记
- c语言指针笔记
- C和指针笔记
- C指针笔记
- Gabor filter 实现的几种方式
- HDU - 1495 非常可乐(倒水问题BFS)
- 射影几何之入门理解2(插序)
- 中国象棋将帅问题--读书笔记(1)
- 博客的用途
- C指针笔记
- DG故障切换
- Unity失焦导致通信问题
- Unity3D屏幕特效合成
- 23种设计模式之二(创建型模式)AbstactFactory模式
- excel2007设置自动保存的方法
- 2015年1月26日
- uva—benefit
- CentOS 7下Tomcat启动后无法启动问题解决方法