C的指针疑惑:C和指针8数组
int a[];
int b[];
上面申明两个数组,不能进行以下赋值
b = a;
你不能使用赋值符把一个数组的所有元素复制给另一个数组,必须使用一个循环,每次复制一个元素
数组和指针
int a[];
int *b;
声明一个数组,编译器将根据声明指定的元素数量为数组保留内存空间,然后再创建数组名,它的值是一个常量,指向这段空间的起始位置。
声明一个指针变量时,编译器只为指针本身保留内存空间,并不为任何整形值分配内存空间。
void strcpy(char *buffer,char const *string)
{
while((*buffer++ = *string++) != '\0')
;
}
注意:形参被声明为一个指向const字符的指针。对于一个并不打算修改这些字符的函数而言,是一个号习惯。
原因有:1.这是一样良好的文档习惯。有些人希望仅观察该函数的原型就能发现该数据不会被修改,而不必阅读完整的函数定义
2.编译器可以捕捉到任何试图修改该数据的意外错误
3.这类声明允许向函数传递const参数。
指向数组的指针:
int (*p)[10]:指向整形数组的指针。
可用于二维数组:
int matrix[3][10];
int (*p)[10] = matrix;
指针数组:
int *api[10]; //10个元素,每个元素都是一个指向整形的指针
C的指针疑惑:C和指针8数组的更多相关文章
- c语言指针疑惑[转载]
		
c99的动态数组是在栈上面开辟的,而new出来的是在堆上面开辟的.栈和堆的地址是从两端相向增长的.栈很小,一般只有几十k,vc6好像是64k.堆很大,在win32的虚拟地址空间可以分配到2g的内存.栈 ...
 - 你必须知道的指针基础-7.void指针与函数指针
		
一.不能动的“地址”—void指针 1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据.和用int表示指针异曲同工,只是更明确是“指针” ...
 - 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, const 对象的引用
		
[源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, con ...
 - C++中指针常量和常量指针的区别
		
在C++学习使用过程中,每个人都不可避免地使用指针,而且都或多或少的接触过常量指针或指针常量,但是对这两个的概念还是很容易搞糊涂的. 本文即是简单描述指针常量和常量指针的区别. 常量指针 定义: 又叫 ...
 - [Reprint]C++普通函数指针与成员函数指针实例解析
		
这篇文章主要介绍了C++普通函数指针与成员函数指针,很重要的知识点,需要的朋友可以参考下 C++的函数指针(function pointer)是通过指向函数的指针间接调用函数.相信很多人对指向一般 ...
 - c++父类指针强制转为子类指针后的测试(帮助理解指针访问成员的本质)(反多态)
		
看下面例子: #include "stdafx.h" #include <iostream> class A { //父类 public: void f() / ...
 - Delphi动态事件深入分析(对象方法在调用的时候会传递一个隐含的Self指针,而该指针的值在EAX中。即左边第一个参数)
		
Delphi动态事件深入分析 2009-2-7 作者:不得闲核心提示:本实验证明了在类中方法的调用时候,所有的方法都隐含了一个Self参数,并且该参数作为对象方法的第一个参数传递... 首先做一个空窗 ...
 - 指针数组vs数组指针 指针函数vs函数指针
		
在分辨这些重要的概念时,我们先回顾一下前面所讲的C之三值合一,由于三个值所求出的地址是相同的,所以经常有传言说他们都是首元素的地址.这种说法是不正确的.为什么说它是不正确的呢? 首先定义一个指针,将三 ...
 - C ~ 指针函数与函数指针的区别
		
一. 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义: 1.指针函数是指带指针的函数,即本质是一个函数.函数返回类型是某 ...
 
随机推荐
- [HTML5]  手机摇一摇实现
			
目录结构 引入jQuery:jquery-1.11.1.min.js html代码 <!DOCTYPE html> <html lang="en"> < ...
 - jquery1.7+里不能用checked获得checkbox的属性
			
jquery1.7+以后用.attr('checked')得到的,都是undefined. 结论就是.attr()不能用于普通对象,数组,窗口,文档.要重新获取改变的dom属性,需要用.prop()方 ...
 - 【BZOJ】1638: [Usaco2007 Mar]Cow Traffic 奶牛交通(dfs+dp)
			
http://www.lydsy.com/JudgeOnline/problem.php?id=1638 一条边(u, v)经过的数量=度0到u的数量×v到n的数量 两次记忆化dfs算出他们即可 #i ...
 - C++之运行时类型识别RTTI
			
C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
 - a &a &a[0]之间的区别和联系
			
数组中,a为数组的首地址,&a[0]为数组第一个元素的地址. 所以 a == &a[0] 但是,&a又是什么东西呢? 我们来做下面的代码测试: #include <std ...
 - ADT(Android Developer Tools)中配置SVN
			
1:打开adt-bundle-windows-x86\eclipse目录.新创建目录subclipse (注:adt-bundle-windows-x86 为我的eclipse目录名) 2: 打开Ec ...
 - 1-2、superset国际化
			
最近由于工作需要研究开源可视化项目superset,由于其国际化做不怎么好,故而记录下国际化的过程,本篇本着『授人以鱼不如授人以渔』的原则,只叙述国际化的过程及方法,不提供直接的国际化文件. 为了方便 ...
 - OpenSSL创建私有CA
			
1.编辑/etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # 工作目录certs ...
 - RxJava的实现原理
			
本周新的一天开始了,让我们一起造一个RxJava,揭秘RxJava的实现原理, 强烈推荐这个
 - 在Hyper-V Linux VM如何选择LIS Linux集成服务
			
导读 很多工程师都知道,如果你选择在 Hyper-V 中运行 Linux guest VM,要获得最好的使用体验,必需针对你所使用的 Linux 发行版和使用场景选择 Linux Integratio ...