K&R——第五章 指针与数组】的更多相关文章

#include <stdio.h> #define maxsize 5000 char buf[maxsize]; char *head = buf; char *new(int size) { //分配元素字长 //可用内存分配完毕 if (maxsize - (buf - head) < size) return 0; head += size; return head - size; } int *arr; int *arr2; char *str; int main() { a…
数组是一个什么玩意: 数组和指针我的理解,有同样之处也有不同之处.因有同样之处,因此一些资料上说,数组和指针本质是同样的.因有不同之处,因此也有一些资料上说,数组和指针是不一样的. 同样之处: 数组名字和指针名字都代表了一个地址. 如:int num[10];num是数组名.函数开辟了一个存储十个整数类型的空间,而num是他们的首地址. int *p; p=(int *)malloc(10*sizeof(int));类似的,p也指向了首地址. 不同之处是,num[10]中的空间位置是在栈中,而…
1.关于输出指向字符的指针的值. 现在定义,char c='a',char* pc=&c.在C中,输出该值只需要printf("%p\n",pc);而在C++中,如果cout<<pc<<endl;则会出现奇怪的一串字符,怎么回事呢.由于C++标准库中I/)类对<<操作符重载,因此在遇到字符型指针时会将其当作字符串名来处理,输出指针所指的字符串.所以我们可以将其先转化为void*,再输出. cout << static_cast&l…
<?php header("Content-Type:text/html;charset=utf-8"); //1.str_split——将字符串转换为数组. /*$str="zhongguo"; print_r(str_split($str,5));*/ //输出:Array ( [0] => zhong [1] => guo ) //2.implode()将一个一维数组的值链接为字符串. /*$str=array('m','l','z','g'…
第4章 指针和数组 1. int *p=NULL 和 *p=NULL 有什么区别 int *p = NULL; 第一句代码的意思是:定义一个指针变量p,其指向的内存里面保存的是 int类型的数据:在定义变量的同时把p的值设置为 0x00000000,而不是把 *p的值设置为 0x00000000,这个过程称为初始化,是在编译的时候进行的. int *p; *p = NULL; 第一行代码,定义了一个指针变量p,其指向的内存里面保存的是 int类型的数据,但是这时候p本身的是多少不得而知:第二行代…
第十一章 指针和数组 一旦给出数组的定义,编译系统就会为其在内存中分配固定的存储单元,相应的,数组的首地址也就确定了 C语言中的数组名有特殊的含义,它代表存放数组元素的连续存储空间的首地址 //L11-1 #include <stdio.h> int main() { int a[5], i; printf("Input five numbers:"); for (i=0; i<5; i++) { scanf("%d", &a[i]); /…
第五章 操作符和表达式 这一章假设没做过玩过单片机.汇编的话,读起来可能比較吃力,尤其是在移位运算符.位运算符应用上.另外多注意一下左值和右值的理解. 总结: 算术操作符.赋值操作符.关系操作符.条件操作符. 短路求值(short-circuited evalution):如||这种二目操作符,假设它的左操作数是真,右操作数便不再求值.带来的后果是假设右操作数的数组下标不合法,那么也不会报错. C并不具备显式得布尔类型,布尔值是用整型表达式来表示的.在表达式中混用布尔值和随意的整型值可能会产生错…
第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节  视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 栈里面存的数组的引用 实际对象在堆内存里面 (C与C++是分配在栈里的) 内存图:   元素为引用数据类型的数组 引用类型的数组如上图   时间:2017年4月26日15:16:22~2017年4月26日15:19:00 章节:05章_02节  视频长度:05:25 内容:数组元素的创建与使用 心…
第五章 数组 1,简单数组 声明:int[] myArray; 初始化:myArray = new int[4]; 为数组分配内存. 还可以用如下的方法: int[] myArray = new int[4]{1,2,3,4}; int[] myArray = new int[]{1,2,3,4}; int[] myArray = {1,2,3,4}; 如果数组中的元素是引用类型,必须为每个数组分配内存: public class Person { public string FirstName…
Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_ /*<深入理解C指针>学习笔记 -- 第五章*/ /*不应该改动的字符串就应该用 const char* 去修饰*/ size_t __strlen_test(const char*); /*返回字符串的几种方法*/ char* __return_str__test(); #endif Chapter5.cpp #include "Chapter5.h" #includ…