首先搞清楚在c语言中没有字符串的类型,所以对字符串操作,有两种形式:可以用字符指针,或者字符串数组(这里的指针变量c,系统会为其重新分配内存。 c程序示例: 1 #include <stdio.h> 2 3 int main() 4 { 5 char *a="hello"; 6 char b[]={ ...
分类:
编程语言 时间:
2018-07-22 20:47:17
阅读次数:
159
最近接触不少C程序,对于指针的使用有很多,相关知识点的认识也有误区,网上搜了一下,综合一下备用。 char *s1 = "hello";char s2[] = "hello"; 【区别所在】 char *s1 的s1是指针变量,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针 ...
分类:
其他好文 时间:
2018-07-22 17:40:05
阅读次数:
186
一、结构体 二、宏 三、枚举 注意:枚举类型定义的三个值,在调用时只能使用一个 四、函数 四、指针 指针:代码块与代码块之间的数据传递 指针变量本身占8个字节 ...
分类:
其他好文 时间:
2018-07-21 21:29:45
阅读次数:
198
铁律1:指针是一种数据类型 1)指针也是一种变量,占有内存空间,用来保存内存地址 测试指针变量占有内存空间大小 2)*p操作内存 在指针声明时,*号表示所声明的变量为指针 在指针使用时,*号表示 操作 指针所指向的内存空间中的值 *p相当于通过地址(p变量的值)找到一块内存;然后操作内存 *p放在等 ...
分类:
其他好文 时间:
2018-07-11 21:58:35
阅读次数:
207
之前看到一篇单向链表的博文,代码也看着很舒服,于是乎记录下来,留给自己~,循序渐进,慢慢 延伸到真正的内核链表~(敢问路在何方?路在脚下~) 1. 简介 链表是Linux 内核中最简单,最普通的数据结构。链表是一种存放和操作可变数量元素(常称为节点) 的数据结构,链表和静态数组的不同之处在于,它所包 ...
分类:
系统相关 时间:
2018-07-07 20:11:11
阅读次数:
173
迭代器与指针的差别: 迭代器: (1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是 ...
分类:
其他好文 时间:
2018-07-04 22:48:18
阅读次数:
184
char *p,a='5'; p=&a; //显然是正确的,p="abcd"; //但为什么也可以这样赋值??双引号做了3件事: 1.申请了空间(在常量区),存放了字符串 2. 在字符串尾加上了'/0' 3.返回地址这里就是 返回的地址 赋值给了 p char *p = “hello”; 把p换成数 ...
分类:
其他好文 时间:
2018-07-02 12:34:10
阅读次数:
183
vector是我用的最多的容器之一,非常的好用。在做leetcode的时候,用的也很多,现在来剖析一下其源码的实现逻辑。 array和vector唯一的区别在于空间的灵活使用。 vector提供的迭代器就是原生指针类型。 vector其实就是3个指针变量,start, finish, end_of_ ...
分类:
其他好文 时间:
2018-06-27 20:10:48
阅读次数:
185
char * a=“hello” ; a是一个char类型的指针,指向第一个字符‘h’。不解引用时,printf(“%s”,a)输入一串字符,解引用时输入一个字符。 而能把字符串赋值给指针时因为对于字符串常量,编译器都是默认按其大小分配内存存放字符串,并把地址首地址赋值指针变量。如:char *p= ...
分类:
其他好文 时间:
2018-06-27 13:51:06
阅读次数:
155
CPU 访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。 ...
分类:
编程语言 时间:
2018-06-21 15:33:47
阅读次数:
167