c语言,数组和指针】的更多相关文章

C语言 数组和指针 const: 关于指针和const需要注意一些规则.首先,把const数据或非const数据的地址初始化为指向const的指针或为其赋值是合法的. 然而,只能把非const数据的地址赋给普通指针.(即const的值不能赋给普通指针);   指针和多维数组: zippo == &zippo[0]; zippo+2 == &zippo[2]; *(zippo+2) == &zippo[2][0]; *(zippo+2) + 1 == &zippo[2][1]…
1.一个实例+理论分析 在了解数组和指针的访问方式前提下,下面再看这个例子: main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 打印出来的值为多少呢? 这里主要是考查关于指针加减操作的理解. 对指针进行加1操作,得到的是下一个元素的地址,而不是原有地址值直接加1.所 以,一个类型为T的指针的移动,以sizeof(T) 为移动单位. 因此,对上题来说,…
概述 指针是C语言的重点,同时也是让初学者认为最难理解的部分.有人说它是C语言的灵魂,只有深入理解指针才能说理解了C语言.暂且撇开这些观点不谈.这章是我在阅读<C和指针>这本书的读书笔记.在谈指针的同时我们也要谈谈数组,数组可以说和指针密不可分的,故把它俩放在一起谈. 一.指针 1.初级指针 内存和地址 硬件存储中有一个值得注意的地方是边界对齐.在要求边界对齐的机器上,整型值存储的起始位置只能是特定的字节,通常是2或4的倍数.对于程序员还要知道的是:(1)内存中每个位置由一个独一无二的地址标识…
寒假要开始猛刷<剑指offer>,先回顾一下C语言基础做个热身. 指针 相信大家对下面的代码不陌生: ; int *p; p=&i; 这是最简单的指针应用,也是最基本的用法.再来熟悉一下什么是指针:首先指针是一个变量,它保存的并不是平常的数据,而是变量的地址.如上代码,指针p中保存的是整型变量i的地址信息. 接下来看如何定义一个指针,既然指针也是一个变量,那么它的定义也和其它变量一样定义:如: int *p: .'*' 是间接寻址或间接引用运算符.上例中我们还看到了一个特别的运算符&a…
有一个这样的错误: 在一个文件中定义:int mango[100];  在另一个文件中声明:extern int *mango;  将会产生错误 定义和声明的区别: 在C中,任何对象都有且只有一个定义,但是可以有多个声明 definition:只出现一次    为一个对象指定类型,分配存储空间.用于创建一个新的对象 declaration:可以出现多次    描述这个对象的类型.用于引用某个已经定义了的对象 所以数组的定义需要指定大小,声明不需要.但是对于多维数组,需要在声明的时候指定除最左侧维…
以前常常听过这种说法,说数组和指针这两者比较像,但是不能混淆,可是一直没能理解.刚刚在李云的<专业嵌入式软件开发>中,看了讲述数组与指针区别的一章,似乎有所领悟.本着知乎上看到的这张图,我试着将自己的理解写一些. 首先需要了解数组和指针的工作模式. 数组: char name[] = {'T', 'o', 'n', 'y', '\0'}; 此时,这个数组的地址是这样的.其中name指向数组的开头: 指针: char name[] = {'T', 'o', 'n', 'y', '\0'}; ch…
1) 字符串指针变量是个变量,指向字符串的首地址:而字符串数组名是个常量,为字符串数组第一个元素的地址: 2)字符串指针变量可以赋值,而字符串数组名不能赋值:对于字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值: char str[14]; str = "I love you!"; 而对于字符指针变量,可采用如下赋值: char *a; a = "I love you!"; 赋值给a的是字符串第一个元素的地址 3)定义一个字符串指针变量时,只给指针变量分配了…
1 字符与字符串:char c='a'而不能写出char c="a" //字符变量用单引号'',而字符串用双引号. 2 字符数组与字符指针的初始化: char s[10]={0}, *p strcpy(s,"hello word\n");或者p="hello word\n"; 而不能用s="hello word\n"y因s数组名表示数组的首地址是个常量. 字符数组的0初始化: 方法1:char s[10]={0}: 方法2:…
转载 说明:所有题目均摘录于网络以及我所见过的面试题目,欢迎补充! 无特殊说明情况下,下面所有题s目都是linux下的32位C程序. 先来几个简单的热热身. 1.计算以下sizeof的值. char str1[] = {'a', 'b', 'c', 'd', 'e'}; char str2[] = "abcde";char *ptr = "abcde";char book[][80]={"计算机应用基础","C语言",&quo…
/* ============================================================================ Name : hello.c Author : liming Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ====================================================…