iOS 开发 Objective-C

C 语言一:指针、指针变量、指针变量运算

2020-08-18  本文已影响0人  望穿秋水小作坊

计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确访问这些数据,必须为每个字节都编上号码,就像门牌,身份证号一样,每个字节的编号都是唯一的,根据编号可以准确地找到某个字节。

32 位系统中内存中每个字节的编码
1. 什么是指针?
2. 0xFFFFFFFF 地址值至少需要几个字节才能容纳?
3. 一个指针占几个字节?
#include <stdio.h>
int main(){
    int a = 100;
    char str[20] = "carrot";
    printf("%p, %p, %lu字节 \n", &a, str, sizeof(&a));
    return 0;
}
// 由于我的是 64 位系统,输出如下:
// 0x7ffeefbff548, 0x7ffeefbff550, 8字节 
4. C 语言中:变量名、数组名、字符串名和函数名,哪些是指针,哪些不是指针?
5. 什么是指针变量?
6. 使用指针变量的时候,如何定义指针变量?如何给指针变量赋值?
//定义普通变量
float a = 99.5, b = 10.6;
char c = '@', d = '#';
//定义指针变量
float *p1 = &a;
char *p2 = &c;
//修改指针变量的值
p1 = &b;
p2 = &d;
7. 如何通过指针变量取得数据?
#include <stdio.h>

int main(){
    int a = 15;
    int *p = &a;
    printf("%d, %d\n", a, *p);  //两种方式都可以输出a的值
    return 0;
}
8. 上面例子中的 *pa 都能获取数据的值,它们的运行过程有什么不同?
*p 和 a 获取数据的值
9. 假设有一个 int 类型的变量 a,pa 是指向它的指针,那么 *&a&*pa 分别是什么意思呢?
10. 指针变量可以做哪些运算
上一篇 下一篇

猜你喜欢

热点阅读