c语言指针

虚拟机的共享文件夹设置

有些话、适合烂在心里 提交于 2020-01-27 04:30:10
文章目录 .c文件的编译和执行 共享文件夹 进阶 基本数据类型 内存占用和sizeof 全局变量 局部变量和全局变量的对比 常量 枚举常量 多文件 头文件 指针 指针与++-- .c文件的编译和执行 编译 gcc -o 生成文件名 .c文件名 gcc .c文件名 -o 生成文件名 使用-o选项就可以生成指定名称的可执行文件 gcc .c文件名 默认生成一个a.out的文件 执行 ./可执行文件 共享文件夹 一般使用Windows编辑源代码,使用Linux进行编译和执行,这时候就要进行交互 如何进行交互? 使用网络,smb服务器(现在不怎么常用) 使用共享文件夹 共享文件夹的创建 首先要安装增强功能 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ekFeqHfd-1577786732784)(en-resource://database/8838:1)] 安装总是无法发送虚拟光驱……到虚拟电脑? 这个时候要弹出光驱然后再次点击安装增强功能就OK了 如何弹出?(19的在没有虚拟光驱的图标,所以要这样做) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dnV2Vyp7-1577786732786)(en-resource://database/8840:1)] 那个移除虚拟盘就是,不过要先勾选上Ubuntu…

ca28a_demo_c++指针

岁酱吖の 提交于 2020-01-26 23:19:46
//28_CppPrimer_指针c++_txwtech /* 什么是指针,在c语言是重点,用于操作数组。c++基本不用指针,一般用vector向量操作 指针的定义和初始化,c++不会检查是否初始化 指针操作 比较复杂,需要掌握基础知识 */ //28_CppPrimer_指针c++_txwtech /* 什么是指针,在c语言是重点,用于操作数组。c++基本不用指针,一般用vector向量操作 指针的定义和初始化,c++不会检查是否初始化 指针操作 比较复杂,需要掌握基础知识 */ #include <iostream> #include <string> #include <vector> using namespace std; int main() { string s("hello world"); string *sp = &s;//指针里面保存的是地址 cout << s << endl; cout << *sp << endl;//*对sp解引用,指针所指向内存中的数据 cout << sp << endl;//sp就是地址,例如:006FF7BC vector<int> *pvec; int *ip1,*ip2; double dp, *dp2; int ival = 1024; int *pi = 0;//指针是0,表示不指向任何对象 int *pi2 =

C++基础内容复习

陌路散爱 提交于 2020-01-26 09:50:31
下列语句定义了5个变量: int count; double sales_price,sum; std::string title; Sales_item bookItem; 每个定义都是以 类型说明符 开始,如上int、double、std::string、Sales_item都是类型名,其中int和doubleshi是 内置类型 ,std::string是 标准库定义的类型 (需要#include <string>), Sales_item是 自定义类型 。 ::作用域操作符,含义是右操作符的名字可以在左操作数的作用域中找到 简化std::string 的写法是使用using。 比如使用using std::string; using std:cin;之后,在下面的代码中就可以直接使用string和cin了。 当进行string对象和字符串字面量混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。 比如,如下s1的初始化时正确的 string item ="what a mess!"; string s1 =item +","; 但是:string s1 ="what a mess!" +","; 就会报错,这个和C#是 完全不一样 的。 虽然任何整数数值都可以作为索引,但是索引的实际数据类型却是unsigned类型的string::size_type

C++基础:变量和基本类型

前提是你 提交于 2020-01-26 05:09:51
基本内置类型 一、基本内置类型 C++定义了一套包括算术类型(arithmetic type) 和空类型(void) 在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合,例如最常见的是,当函数不返回任何值时使用空类型作为返回类型。 二、算术类型 算术类型分为两类:整型(integral type,包括字符和布尔类型在内)和浮点型。 带符号类型和无符号类型 除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的(signed) 和无符号的(unsigned) 两种。带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。 类型int、short、 long 和long long 都是带符号的,通过在这些类型名前添加unsigned就可以得到无符号类型,例如unsigned long。 类型unsigned int 可以缩写为unsigned。 与其他整型不同,字符型被分为了三种: char、signed char和unsigned char。特别需要注意的是:类型char和类型signed char并不一样。类型char实际上会表现为上述两种形式中的一种,具体是哪种由编译器决定。 建议:如何选择类型 和C语言一样,C++的设计准则之一也是尽可能地接近硬件。C++的算术类型必须满足各种硬件特质

重新认识C语言指针(上)

五迷三道 提交于 2020-01-25 20:37:37
​ 独创性并不是首次观察某种新事物,而是把旧的、很早就是已知的,或者是人人都视而不见的事物当新事物观察,这才证明是有真正的独创头脑 —尼采 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。 https://github.com/midou-tech/articles 点关注,不迷路!!! 序言  指针是C语言学习者绕不过的一道坎,也是C语言学习者不得绕过的一道坎。辨别一个人C语言学的好赖就看他对指针的理解怎么样。指针内容也是工作面试经常问到的问题。本文将带你重新认识那个绊倒你的指针,以解大家的心头之惑(恨)。 为什么要学习指针?  有同学就要说了,既然指针这么难,这么不通俗易懂,为什么要学习他呢?其他高级语言都是把这块基本屏蔽掉了,不在让程序员直接操作指针,这里不直接操作指的是不让程序员用指针进行运算和强转而不是彻底没有了。举个java的例子 Object obj= new Object(); Object sec= obj; sec = new Object();  如果你去仔细研究他们的行为,就会发现 obj, sec 都只是一个指向对象的东西,可以为空,也可以修改指向,所以它们其实都是指针,只是 Java 的教材里面不在去提这东西而已,具体原因看我后面讲解便知道了。 ​ 继续说为什么学习指针,为什么学习指针就必须要说到指针的优点了。

char s []和char * s有什么区别?

风流意气都作罢 提交于 2020-01-25 19:57:48
在C语言中,可以在这样的声明中使用字符串文字: char s[] = "hello"; 或像这样: char *s = "hello"; 那么区别是什么呢? 我想知道在编译和运行时在存储持续时间方面实际发生了什么。 #1楼 只需添加:它们的大小也会得到不同的值。 printf("sizeof s[] = %zu\n", sizeof(s)); //6 printf("sizeof *s = %zu\n", sizeof(s)); //4 or 8 如上所述,对于数组 '\\0' 将分配为最后一个元素。 #2楼 区别在于 char *s = "Hello world"; 将放置 "Hello world" 在内存的只读部分 ,使 s 的指针,使得在这个内存非法任何写入操作。 这样做时: char s[] = "Hello world"; 将文字字符串放入只读内存中,并将该字符串复制到堆栈上新分配的内存中。 因此 s[0] = 'J'; 法律。 #3楼 char s[] = "hello"; 声明 s 为 char 数组,该数组足以容纳初始化程序(5 + 1 char s),并通过将给定字符串文字的成员复制到数组中来初始化该数组。 char *s = "hello"; 声明 s 到是指向一个或多个(更在这种情况下) char S和点直接在包含文字固定(只读)位置 "hello" 。

带你重新认识指针(下)

天大地大妈咪最大 提交于 2020-01-25 13:50:27
真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。这是怎样的哀痛者和幸福者?然而造化又常常为庸人设计,以时间的流驶,来洗涤旧迹,仅使留下淡红的血色和微漠的悲哀。在这淡红的血色和微漠的悲哀中,又给人暂得偷生,维持着这似人非人的世界。我不知道这样的世界何时是一个尽头!我们还在这样的世上活着;我也早觉得有写一点东西的必要了。 ——鲁迅 <p align="center">本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues。</p> <h4 align="center"><a href=" https://github.com/midou-tech/articles " target="_blank"> https://github.com/midou-tech/articles</a></h4&gt ; <h4 style="color:red;text-align:center">点关注,不迷路!!! </h4>   看完我上一篇指针的讲解之后很多同学反馈很不错,有网友给私信说之前在大学里面一直搞不懂指针的问题,说到指针都是云里雾里,老师讲的也是很难听懂 , 点击即可进入 指针(上) 。也有很多网友表示非常期待指针下的文章,所以我就马不停蹄的继续写 ,下 主要讲解指针的特性以及指针安全问题。 指针的特性 指针和常量  先说下什么是常量,常量就是不可变的量

C基础第26课--指针的本质分析

懵懂的女人 提交于 2020-01-25 09:25:03
学习自狄泰软件学院唐佐林老师C语言课程,文章中图片取自老师的PPT,仅用于个人笔记。 实验1 #include <stdio.h> int main() { int i = 0; int* pI; char* pC; float* pF; pI = &i; *pI = 10; printf("%p, %p, %d\n", pI, &i, i); printf("%d, %d, %p\n", sizeof(int*), sizeof(pI), &pI); printf("%d, %d, %p\n", sizeof(char*), sizeof(pC), &pC); printf("%d, %d, %p\n", sizeof(float*), sizeof(pF), &pF); return 0; } mhr@ubuntu:~/work/C$ mhr@ubuntu:~/work/C$ ./a.out 0x7ffe8ce0710c, 0x7ffe8ce0710c, 10 8, 8, 0x7ffe8ce07110 8, 8, 0x7ffe8ce07118 8, 8, 0x7ffe8ce07120 mhr@ubuntu:~/work/C$ 注意: 函数调用时候实参将复制给形参!!! 实验2 #include <stdio.h> int swap(int* a, int* b) { int c

C语言文件操作总结

泪湿孤枕 提交于 2020-01-25 01:22:24
文件的打开操作 fopen 打开一个文件,操作文件指针FILE *       文件的关闭操作 fclose 关闭一个文件       文件的读写操作 fgetc 从文件中读取一个字符               fputc 写一个字符到文件中去               fgets 从文件中读取一个字符串               fputs 写一个字符串到文件中去               fprintf 往文件中写格式化数据               fscanf 格式化读取文件中数据               fread 以二进制形式读取文件中的数据               fwrite 以二进制形式写数据到文件中去               getw 以二进制形式读取一个整数               putw 以二进制形式存贮一个整数     文件状态检查函数 feof 文件结束               ferror 文件读/写出错               clearerr 清除文件错误标志               ftell 了解文件指针的当前位置       文件定位函数 rewind 反绕               fseek 随机定位 一、文件打开关闭 (一)文件打开  1. 函数原型 FILE *fopen(char

C语言指针笔记一

假装没事ソ 提交于 2020-01-25 00:45:23
其实以前在学校也学过一点点C,不过那都是好久之前的事情了。最近因为要上 C++ 的课程,所以必须要熟练C基础,指针又要重新复习一遍了。 下面这幅图很简单的表现了变量和指针的关系 指针变量p也是在内存中占用了地址的,通过&p可以获取到 其实可以很形象的表示:*p是连接变量a的桥梁,有了这个链接,我们就可以访问到变量a的内容:*p = a,而变量p本身存放的是a的地址。 来源: CSDN 作者: 风楚颜 链接: https://blog.csdn.net/maybe_frank/article/details/103835499