--------【指针和数组】
文章平均质量分 72
加油11
模仿模仿再模仿!
展开
-
C语言中的字符串
1 字符串的概念字符串是有序字符的集合。字符串是程序中的基本元素之一。C语言中没有字符串的概念。 C语言中通过特殊的字符数组模拟字符串。C语言中的字符串是以‘\0’结尾的字符数组。2 字符数组与字符串在C语言中,双引号引用的单个或多个字符是一种特殊的字面量。 存储于程序的全局只读存储区。本质为字符数组,编译器自动在结尾加上‘\0’字符。下面哪些是字符串的定义? char原创 2017-11-30 21:29:38 · 578 阅读 · 0 评论 -
数组指针和指针数组分析
1 思考下面这些声明合法吗? int array[5]; int matrix[3][3]; int *pa = array; int *pm = matrix;问题: array代表数组首元素的地址,那么matrix代表什么? array和&array的地址值相同,但是意义不同,那么它们所代表的类型相同吗?2 数组类型C语言中的数组有自己特定的类型。数组的类型由元素和数组大小共同决原创 2017-12-02 17:50:38 · 268 阅读 · 0 评论 -
指针和数组分析
1 数组的本质数组是一段连续的内存空间。数组的空间大小为sizeof(array_type)*array_size。数组名可看作指向数组第一个元素的常量指针。问题: 1. a + 1的意义是什么?结果是什么? 2. 指针运算的意义是什么?结果又是什么?编程实验:a + 1的结果是什么?#include <stdio.h>int main(){ int a[5] = {0};原创 2017-11-29 20:56:15 · 278 阅读 · 0 评论 -
数组参数和指针参数分析
1 思考为什么C语言中的数组参数会退化为指针?2 退化的意义C语言中只会以值拷贝的方式传递参数。当向函数传递数组时由如下两种实现方式:将整个数组拷贝一份传入函数;将数组名看作常量指针传数组首元素地址(C语言采用的方式)。C语言以高效作为最初设计目标:参数传递的时候如果拷贝整个数组执行效率将大大下降。参数位于栈上,太大的数组拷贝将导致栈溢出。3 二维数组参数二维数组参数同样存在退化的问题原创 2017-12-21 09:59:07 · 276 阅读 · 0 评论 -
指针阅读技巧分析
1 笔试中的问题下面的标识符代表什么含义?2 指针阅读技巧解析右左法则:从最里层的圆括号中未定义的标示符看起。首先往右看,再往左看。遇到圆括号或方括号时可以确定部分类型,并调转方向。重复2,3步骤,直到阅读结束。编程实验:复杂指针的阅读#include <stdio.h>int main(){ int (*p)(int); //==>p为指针,指向函数,指向的函数有一个原创 2017-12-22 16:08:42 · 287 阅读 · 0 评论 -
指针的本质分析
1 变量的回顾程序中的变量只是一段存储空间的别名,那么是不是必须通过这个别名才能使用这段存储空间?思考: 2 *号的意义在指针声明时,*号表示所声明的变量为指针。在指针使用时,*号表示取指针所指向的内存空间中的值。实例分析:指针使用示例#include <stdio.h>int main(){ int i = 0; int* pI; char* pC; f原创 2017-11-27 22:57:47 · 354 阅读 · 0 评论 -
多维数组和多维指针
1 指向指针的指针指针的本质是变量。指针会占用一定的内存空间。可以定义指针的指针来保存指针变量的地址值。 例如:int main(){ int a = 0; int *p = NULL; int **pp = NULL; pp = &p; *pp = &a; return 0;}2 问题:为什么需要指向指针的指针?指针在本质上也是变量。原创 2017-12-19 15:41:09 · 246 阅读 · 0 评论