Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

环境搭建

  • IDE下载地址:
    https://www.visualstudio.com/zh-hans/downloads/

  • 选择:Visual Studio Community 2017
    适用于学生、开源和个人开发人员的功能完备的免费 IDE

  • 无脑下一步,然后到这里的时候注意选择。我这么选主要是因其稍微显得轻便,因为我的目的是首先C艹语法入门,有个基本的就够了,其他的选上下载可能就要5,6G吧,当然你网速快也可以选上其他的。
    Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

  • 留心一点路径设置什么的,这里就不啰嗦了,到这儿环境也算搭好了。

IDE基础使用

  • 文件—新建—项目
  • 鼠标右击好的项目文件夹中的”源文件”—右击弹出菜单内选择”新建项”—按照下图图示点选创建文件
    Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

  • 运行项目,注意下面那个log区域就是你输出的东西
    Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

  • 如何打开一个项目? -> 文件 -> 打开 -> 项目/解决方案
    Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

  • vs2017,风格更换,字体更换
    工具—>选项->按照图示操作
    Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

  • vs2017常用快捷键

    //注释和取消注释,WTF,反人类,还是studio好用

  • 给vs2017换一个骚气的背景图(TODO)

  • vs2017,同个项目编译多个cpp文件
    你直接在源文件里面添加新的文件,然后把之前的源文件移除注意是移除而不是删除哦,你如果想调用它,再打开已有项,它还在那儿。所以,不用再新建一个项目。

  • 生成get set方法
    ctrl+R,ctrl+E这两个组合键,可以自动生成属性中的get和set方法。
    参考:

一波基础语法

1:helloWorld

//c头文件,
#include <stdlib.h>

//名称为main的类似于java的方法
void main() {
    //system是系统函数
    system("tasklist");//在控制台输出列出系统任务列表
    system("pause"); //程序运行时窗口一闪而过解决
}

头文件的后缀是 .h
头文件中一般存放一些定义,很少作实际的运算,头文件的好处是可以通用。如一些通用的定义,可以用作其他文件来调用它,这样就节省了代码量,并且带来了方便,h就是head(头)的代称。
另外如果你排除了运行还是有问题,请先停止上一次的调试,再进行一次新的调试。

关于尖括号和引号

include <stdlib.h>
include "stdlib.h"

""和<>都可以,他们的区别在于搜索顺序不同
#include <>指的是先从标准c语言库中读取某头文件内容
如果未搜索到,则搜索个人文件夹的自定义头文件

#include ""指的是先从自定义头文件的文件夹中进行某头文件搜索
如果没有搜索到,则再搜索系统自带的标准头文件文件夹

2:sizeof 函数测试

printf("int占了%d个字节数\n", sizeof(int));
printf("st占了%d个字节数\n", sizeof(short));
printf("float占了%d个字节数\n", sizeof(float));

输出:

int占了4个字节数
st占了2个字节数
float占了4个字节数

3:一波循环

    //一波循环
    for (int n = 0; n < 10; n++) {
        printf("%d\n", n);//int 占位符是 %d
    }

PS:windows的c++和linux的c++有区别。

输出:

0
1
......
8
9

4:输入输出函数scanf

注意,这个 子是有个宏定义。

#define _CRT_SECURE_NO_WARNINGS //宏定义
#include <stdio.h>

void main() {

    int i;
    printf("请输入一个整数:");
    //赋值
    scanf("%d", &i);  //控制台输入,&取地址符
                      //打印
    printf("i的值为:%d\n", i);

    system("pause");

}

输出结果:

请输入一个整数:asdad
i的值为:-858993460
请按任意键继续. . .

5.关于头文件和system函数

include stdlib.h ,C艹标准库默认头文件,include stdio.h ,C标准库默认头文件,stdio.h这个头文件内没有声明system这个函数(#include

6:指针来了

#include <stdio.h>
#include <Windows.h>

//指针
//指针存储的是变量的内存地址
//内存地址,系统给数据分配的编号(门牌号)
void main(){

    int i = 90;

    //指针变量,创建一个int类型的指针,指针也分类型,这里是int类型
    int* p = &i; //&是取地址符  取i的地址  p的值就是i这个变量的内存地址  
    printf("%#x\n",p);// %x=>50fb50   %#x=>0x50fb50  这个#只是一个0x的格式


    float f = 89.5f;

    //创建一个float类型的指针
    float *fp = &f;
    printf("%#x\n", fp);

    system("pause");

}

输出

0x50fb50
0x50fb38
请按任意键继续. . .

7:观察内存,修改内存

接着上一步,我们查到了指针地址,然后去内存检测里看。
Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符
然后搜索这个地址:0x50fb50

根据搜索结果,可以看到内存对应的内容值是90
Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

8:什么是变量名?

变量名是对内存空间上的一段数据的抽象
比如int i = 90,那么i就是堆内存上这个90这段数据的一个抽象

9:通过指针修改内存数据

#include <stdio.h>

void main() {

    int i = 20;

    int *p = &i;
    *p = 666;

    printf("i==%d",i);
    getchar();

}

输出

i==666

输出占位符

Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

Demo

本文代码地址:https://github.com/zj614android/c-c-/tree/master/Lis1

;