c语言指针和数组的学习总结

  1. 数组是由一系列相同的元素构成
  2. const int days【10】 = {31, 23, 45, 56, 78,};用CONST声明定义的数组是是数组常量,声明之后,是 只读 不能在以后使用再单独在改变,除了可以在数组声明中从新赋值,他不要求原数组不能改变,只是说明函数在处理数组的时候,应该把数组当做固定不变的。
  3. 数组如果没有初始化完成,未被初始化的空间会自动初始化为0
  4. 只有在声明形参的时候 int ar【】 和 int * ar是相同的
  5. C保证在位数组分配存储空间的时候,指向数组之后的第一个位置的指针也是合法的
  6. int* pt;*pt = 5 是错误的 因为 当创建一个指针时,系统只分配了用来存储指针本生的内存空间,。
  7. 对形式参量 const 的用法 见 C primer 5 P264页。
时间: 2024-10-09 14:02:40

c语言指针和数组的学习总结的相关文章

c/c++(疑3) C语言指针与数组之间关系

c/c++ (疑1)数组和指针 c/c++(疑2) const extern 有了前面 两篇 基础,下面我们可以更深入的来介绍c/c++(疑3) C语言指针与数组之间关系 1 概述(C语言指针与数组之间关系) 指针就是指针,指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址.指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到. 数组就是数组,其大小与元素的类型和个数有关.定义数组时必须指定其元素的类型和个数.数组可以存任何类型的数据,但不能存函数. 2    

C语言指针和数组

C语言指针和数组 binsearch else-if  shellsort  insertsort 指针和地址 指针是编程语言中的一类数据类型及其对象或变量,用来表示或存储一个内存地址,这个地址的值直接指向(points to)存在该地址的对象的值. 取值运算*p返回保存在内存地址为p的内存空间中的值.取地址&p运算则返回操作数p的内存地址 C语言是以传值的方式将参数值传递给被调用函数,被调用函数不能直接修改主调函数中的值,需要修改主调函数中的值就需要利用指针 指针和数组 数组名代表的是该数组的

程序设计基石与实践之C语言指针和数组基础

英文出处:Dennis Kubes:  <Basics of Pointers and Arrays in C>. 关于C语言中指针和数组的争论就像是一场恶战.一方面,有些人觉得,所有人都必须承认指针与数组是不同的.而另一些人则认为数组被当成指针来处理,因此它们不应该有什么区别.这种现象让人迷惑.然而,这两种说法其实都是正确的. 数组不是指针,指针也不能说是数组.在C语言中,指针仅在内存中代表一个地址,而数组是许多连续的内存块,多个类型相似的元素存储在其中.更深入的解释,请参考我之前的博文&l

C语言指针与数组易混淆知识点(一)

一指针与数组 二指针与函数 三指针数组数组指针指向指针的指针 四程序陷阱 一.指针与数组 指针:指针本身也是一个变量,它的内容是指向的内容的地址.指针同样有类型的区分,char 的指针只能指向char型数据,int 指针指向int型数据.但是指针所占内存单元的大小(即其内容)是跟操作系统的地址位数有关,比如32位地址的系统,那么指针所占的内存单元就是4个字节,16位就是2个字节,因此,指针的类型只是限定它所指向的变量的类型,其内容所占的单元大小是与操作系统的地址位数相关,与变量类型无关. 在32

C语言指针与数组的定义与声明易错分析

部分摘自<C语言深度解剖> 1.定义为数组,声明为指针 在文件1中定义: char a[100]; 在文件2中声明: extern char *a; //这样是错误的 这里的extern告诉编译器a这个名字已经在别的文件中被定义了,下面的代码使用的a是在别的文件中定义的.编译器是按文件分别编译的,当a被声明为char* a时,编译器理所当然的认为a是一个指针变量,在32位系统下占用4个byte,这4个byte存放的是地址,地址指向的空间存储的是char类型数据. 程序会返回SIGSEGV. 2

4)C语言指针(C自考学习)

指针和指针变量 指针就是地址,地址是一种数据类型.指针变量也是变量,但只能存放地址类型的数据,可以称为"地址型"变量. 1)内存单元和地址 一个程序运行时,程序本身和程序中用到的数据都要保存在计算机的内部存储器中.内部存储器是由多个内存单元(字节)组成的,每个单元都有自己独有的,相互不同的地址,称内存单元地址. 2)变量与地址. char ch='A';   short s =5;  float f;    他们分别是1个字节,2个字节,4个字节.(也就是内存单元) 如果出现这样的赋值

C语言 指针和数组

1. 指针和一维数组 一维数组名就是一个指针地址常量, 一维数组名的指针地址与数组第一个元素地址相同 原文地址:https://www.cnblogs.com/mycgy/p/8445326.html

C语言指针、数组和函数的一些总结

主要来自于孟宪福老师的分布式对象课程. int a[7][8]; // a指向 a-->a[0]-->a[0][0] a[0]是第0行一维数组 // a + i --> a[i] --> a[i][0] a[i][j]; // 等价于*( *(p + i ) + j) 定义一个函数返回7*8的数组a int ( *f () ) [8] { int a[7][8]; return a; } 总结起来就是: 1. 从标识符开始 a. 定义数组,数组的元素是什么? b. 定义函数,函数的

C之指针与数组组合

我们在前面讲到数组的本质是一段连续的内存空间,那么它的大小为 sizeof(array_type) * array_size,同时数组名可看做指向数组第一个元素的常量指针.那么问题来了,数组 a + 1 的意义是什么呢?结果又是怎样呢?指针运算的意义又是什么?结果呢?下来我们看个示例代码,代码如下 #include <stdio.h> int main() {     int a[5] = {0};     int* p = NULL;          printf("a = 0x