美文网首页
NDK-006:C1:基本数据类型和指针入门

NDK-006:C1:基本数据类型和指针入门

作者: xqiiitan | 来源:发表于2024-12-29 17:31 被阅读0次

准备:
AS2.3以上,使用CMake;
Visual Studio 2013
云主机(或 mac电脑直接编译so库)

0.后续课程安排

C基础
JNI基础
项目实战
C进阶
C++基础
C++进阶
项目实战
数据结构与算法
项目实战:智能识别,音视频,openGL。

1.C语言基础

cpp里面可以写c语言的东西。

#include <stdio.h> // 导入头文件,里面都是方法的声明(.h、.hpp)
// 实现文件(.c  .cpp)
void main() {
    printf("Hello world!\n"); // C打印
    getchar(); // 程序暂停
}

2.基本数据类型

使用占位符输出。
int i = 100; // printf("i = %d \n", i); //100
double d = 200; // printf("d = %lf \n", d); //200.000000
float f = 200; // printf("f = %f \n", f); //200.000000
long l = 100; // printf("l = %ld \n", l); //100
short s = 100; // printf("s = %d \n", s); //100
char ch = 'D'; // printf("ch = %c \n", ch); // D
// 字符串 char*

3. 变量地址和指针

变量的地址:任何的数据(变量) 都会有地址(住址门牌号)
指针其实存放(指向) 的是变量的地址。
【&】符号代表 取变量的地址。指针非常灵活。
【* 】 通过* 取地址里面的值。对地址变量取值。

int i = 100;
printf("i的地址是 = %p", &i); // 【&】符号代表 取变量的地址
通过debug的调试,可以根据地址查询地址里面的值。
sizeof(int/double/char) 获取数据类型所占的字节数 4/8/1。
根据地址可以获取变量的值。

获取指针变量和获取地址的值。

int i = 100;
printf("i 的值是 %d \n", i);
printf("i 的值是 %d \n", *(&i) ); // 通过*获取地址的值

int* p = &i; // int* 代表的是int类型的指针(地址)
printf("i 的值是 %d \n", *p );  // 通过指针取值,同上

4.通过指针变量修改值

int i =100;
int* p = &i;
i = 200; // 通过变量名直接修改
// 另一只方式,通过指针修改, 获取指针的值进行间接修改。
*p = 300; // 重新给p地址里面赋值,300
printf("i的值是:%d \n", i);

4.1通过方法修改值

void change(int i) { 
    i = 200; // 直接修改不能修改。
}
void change2(int* p){
    printf("change方法中,i的地址是:%p\n", p);
    *p = 200; // 通过变量赋值
}

void main() {
    int i = 100;
    // change(i);
    change2(&i); // 传入i的地址
    printf("i 修改后的值:%d\n", i);
}

5.面试题:对两个值,写个方法,交换两个值。

#include <stdlib.h>
// p1, p2只是一个变量。
void swap(int* p1, int *p2) { // 传入地址
    // 地址里面的值,修改替换掉。
    int temp = *p1; 
    *p1 = *p2;
    *p2 = temp;
} 
int main()
{
    int a=100;
    int b=200;
    printf("交换之前a=%d, b=%d\n", a, b);
    
    swap(&a, &b); // 传地址或引用
    printf("交换之后a=%d, b=%d\n", a, b);
    return(0);
}
int a=100;
int b=200;
int* p1 = &a; // p1是一个变量而已,它是int 指针类型的变量
int* p2 = &b;
p1 = p2; // 只是把p1的变量改了,并没有改动 a的地址。
a, b 的地址还是原来的值。

5.1 对int a,b交换,但是不能用中间变量。

void swap(int* p1, int *p2) { // 传入地址
    *p1 = *p1 + *p2;
    *p2 = *p1 - *p2;
    *p1 = *p1 - *p2;
} 
int main()
{
    int a=600;
    int b=200;
    printf("交换之前a=%d, b=%d\n", a, b);
    
    swap(&a, &b); // 传地址或引用
    printf("交换之后a=%d, b=%d\n", a, b);
    return(0);
}

// 方案2:a=a|b; b=a^b; a=a^b;

学习能力,心态提升。提升层次等级。

相关文章

  • C语言学习(第一天)

    C语言基本数据类型 输入和输出函数 指针入门 C语言指针实现数据交换 指针的常见错误 不可以使用已经被回收的变量 ...

  • js的数据类型及内存图

    js分为基本数据类型:null,undefined,string,number,Boolean和指针数据类型:数组...

  • Const关键字理解(iOS)

    基本数据类型 const 在基本数据类型中的用法 指针类型 指针 的简单用法 const 与 指针 的结合使用 注...

  • iOS中const的简单介绍

    简单用法 基本数据类型 const 在基本数据类型中的用法 指针类型 指针 的简单用法 const 与 指针 的结...

  • 01_C++读书笔记

    入门: 数据类型: 数组: 字符串: 结构体: 指针: 循环: if:

  • 数据类型简介及输出

    (1) 数据类型简介 数据类型简介: Object - C 数据类型 分为 基本数据类型, 构造类型 和 指针类型...

  • iOS开发基础

    整理和查找了一下以前学习时候的资料 OC数据类型 1.数据类型 数据类型: 基本数据类型、指针数据类型 基本数据类...

  • c基础—基本数据类型和指针入门

    c语言第一个程序HelloWorld 基本数据类型 变量地址和指针变量 debug下根据地址查询该地址的数据,根据...

  • C语言基础一

    一、基本数据类型 二、指针 1、基本 2、修改值 4、交换 5、多级指针 三、数组和数组指针 1、基础 数组指针,...

  • 第3章,数据

    基本数据类型 在C语言中,仅有4种基本数据类型----整形,浮点型,指针和聚合类型(数组和结构),所有其他的类型都...

网友评论

      本文标题:NDK-006:C1:基本数据类型和指针入门

      本文链接:https://www.haomeiwen.com/subject/hfamejtx.html