C语言笔记

实用的指针用法数组

能够用指针作下面四个最基本的操做:
一、向OS申请一块内存,而且用指针处理它。这包括字符串,和一些你历来没见
过的东西,好比结构体。
二、经过指针向函数传递大块的内存(好比很大的结构体),这样没必要把所有数据
都传递进去。
三、获取函数的地址用于动态调用。
四、对一块内存作复杂的搜索,好比,转换网络套接字中的字节,或者解析文件。网络

對於其余情況,應當儘量使用數組,而將指針做為加速程序和優化的手段,缘由在於現在訪問數組或指針的語法都會翻譯為相同的機器碼,并且表現一致。函数

==========================================================================指针

sizeof() 函数记录的是所读取变量或数组结构体等所占内存的大小,当读取数组时,会将‘\0’计入长度;对象

strlen所做的仅仅是一个计数器的工做,它从内存的某个位置(能够是字符串开头,中间某个位置,甚至是某个不肯定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,而后返回计数器值(长度不包含'\0')。内存

strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',若是你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'中止。字符串

⒈sizeof操做符的结果类型是 size_t,它在头文件中typedef为unsigned int类型。
该类型保证能容纳实现所创建的最大对象的字节大小。
⒉sizeof是取字节运算符(关键字),strlen是函数。
⒊sizeof能够用类型作参数,strlen只能用char*作参数,且必须是以'\0'结尾的。
⒋数组作sizeof的参数不退化,传递给strlen就退化为 指针了。
⒌大部分编译程序 在编译的时候就把sizeof计算过了是类型或是变量的长度。这就是sizeof(x)能够用来定义数组维数的缘由.
6.strlen的结果要在运行的时候才能计算出来,是用来计算字符串的长度,不是类型占内存的大小。
7.sizeof后若是是类型必须加括弧,若是是变量名能够不加括弧。这是由于sizeof是个操做符不是个函数。
⒏当适用了于一个结构类型时或变量, sizeof 返回实际的大小,
当适用一静态地空间数组, sizeof 归还所有数组的尺寸。
sizeof 操做符不能返回动态地被分派了的数组或外部的数组的尺寸
⒐数组做为参数传给函数时传的是指针而不是数组,传递的是数组的首地址,
相关文章
相关标签/搜索