C语言知识点及细节
2017-11-16 16:13
148 查看
1.二维数组每一个元素都返回一个指针
指针数组表示方法:
&a:
a:数组第0行的首地址
a[0],*(a+0),*a:数组第0行0列元素的地址
a+1,&a[1]:数组第1行的首地址
a[1],*(a+1):数组第1行0列元素的地址
a[1]+2,*(a+1)+2,&a[1][2]:数组第一行第2列元素的地址
*(a[1]+2),*(*(a+1)+2),a[1][2]:取数组第一行第2列元素的值
注意!不要把&a[i]简单的理解为a[i]的物理地址,因为并不存在a[i]这个变量。它只是一种地址的计算方法,能得到第i行的地址。&a[i]和a[i]的值是一样的,但它的含义却不同。 &a[i]或a+i指向行,而a[i]或*(a+i)指向列。当下标j=0时,&a[i]和a[i]+j的值相等。*(a+i)只是a[i]的另一种表示形式。在二维数组中,a+i=a[i]=*(a+i)=&a[i]=&a[i][0]即它们的地址值是相等的。
2.关于Linux gcc编译完 要注意命令行之间参数要加空格
3.atoi 把地址内容转换成整形
4.int(*p)() 指向函数的指针 该函数返回值是整型量即函数指针。
int *p() 函数指向一个指针 该指针的返回值是整形量即指针函数。
指针数组表示方法:
&a:
a:数组第0行的首地址
a[0],*(a+0),*a:数组第0行0列元素的地址
a+1,&a[1]:数组第1行的首地址
a[1],*(a+1):数组第1行0列元素的地址
a[1]+2,*(a+1)+2,&a[1][2]:数组第一行第2列元素的地址
*(a[1]+2),*(*(a+1)+2),a[1][2]:取数组第一行第2列元素的值
注意!不要把&a[i]简单的理解为a[i]的物理地址,因为并不存在a[i]这个变量。它只是一种地址的计算方法,能得到第i行的地址。&a[i]和a[i]的值是一样的,但它的含义却不同。 &a[i]或a+i指向行,而a[i]或*(a+i)指向列。当下标j=0时,&a[i]和a[i]+j的值相等。*(a+i)只是a[i]的另一种表示形式。在二维数组中,a+i=a[i]=*(a+i)=&a[i]=&a[i][0]即它们的地址值是相等的。
2.关于Linux gcc编译完 要注意命令行之间参数要加空格
3.atoi 把地址内容转换成整形
4.int(*p)() 指向函数的指针 该函数返回值是整型量即函数指针。
int *p() 函数指向一个指针 该指针的返回值是整形量即指针函数。
相关文章推荐
- C语言细节之一 : 声明和初始化
- jQuery 中一些细节知识点(本文会持续更新)
- Swift语言知识点小结类和对象
- 基本语言细节--动态内存管理:new/delete 与malloc /free 的几点区别 -----整理于web
- 计划开发的语言及一些细节求吐槽
- 黑马程序员——Objective-C语言知识点总结之内存管理、Block、Protocol
- C语言知识点整合(1)
- c语言知识点(1)
- C语言结构体部分--知识点及试题
- C 语言细节
- 你所不了解的javascript操作DOM的细节知识点(一)
- 黑马程序员--面向对象细节知识点--3rd day
- C的几点细节知识点
- 编程语言系列(一)--C语言基础知识点总结
- C语言知识点补充(1)
- Java语言琐碎细节2-String的问题
- 深入学习C语言知识点checklist
- 今天逛博客时看到一篇不错的C语言知识点总结,借来看看
- 一起talk C栗子吧(第一百三十四回:C语言实例--创建线程时的内存细节)
- 《一起学》系列1:C++语言细节