C语言部分学习


title: “C语言学习”
date: 2016-07-5 13:48:38
tags:


1 指针
指针运算符
指针运算符有两种:
取地址运算符&:& 是单目运算符,其结合性为自右至左,功能是取变量的地址。
取内容运算符*:* 是单目运算符,其结合性为自右至左,用来表示指针变量所指的变量。在 * 运算符之后跟的变量必须是指针变量。

// 定义int类型a b
int a = 10, b = 20;
// 变量a内存地址赋值给int类型p指针。
// 此处的*是类型说明符
int *p = &a;
// 此处的*是取内容运算符
printf("%d", *p);

------------------------------------------------------

// 函数类型的pf指针
void (*pf)();
// 将函数赋值给pf指针
pf = swap;
// 调用swap函数
pf(&a, &b);
// 默认8进制表示字符串123abc
    printf("\61\62\63\141\142\143\n");
    // 16进制表示字符串123abc。注意加x
    printf("\x31\x32\x33\x61\x62\x63\n\a");
    
    // %c 输出ASCII字符 %d 输出ASCII数字 %s 输出字符串
    char a = 'E';
    char b = 70;
    int c = 71;
    int d = 'H';
    printf("a=%c, a=%d\n", a, a);
    printf("b=%c, b=%d\n", b, b);
    printf("c=%c, c=%d\n", c, c);
    printf("d=%c, d=%d\n", d, d);
/*
     data打印出来的是16进制,每8位一组。<31323361 6263>
     根据ASCII表对照
     31:1
     32:2
     33:3
     61:a
     62:b
     63:c
     */
    NSData *data = [@"123abc" dataUsingEncoding:NSUTF8StringEncoding];
    // 转成字节数组
    unsigned char *recv = (unsigned char *)[data bytes];
    
    for (int i = 0; i < 6; i++) {
        NSLog(@"%d %c", recv[i], recv[i]);
    }
    /*
     打印出10进制对应的字符
     2016-07-06 11:15:56.473 XLoongGlass[12153:496067] 49 1
     2016-07-06 11:15:56.473 XLoongGlass[12153:496067] 50 2
     2016-07-06 11:15:56.473 XLoongGlass[12153:496067] 51 3
     2016-07-06 11:15:56.473 XLoongGlass[12153:496067] 97 a
     2016-07-06 11:15:56.474 XLoongGlass[12153:496067] 98 b
     2016-07-06 11:15:56.474 XLoongGlass[12153:496067] 99 c
     */

你可能感兴趣的:(C语言部分学习)