iOS开发C语言基础注意事項 连载二

来源:互联网 发布:男生认妹妹心理知乎 编辑:程序博客网 时间:2024/05/16 11:41

<span style="font-size:18px;">1、求余运算符号问题: 5 % 2 = 1 ,-5 % 2 = -1 而 5 % -2 =1 , -5 % -2 = -1;</span>

2、优先级和运算顺序问题:int n = 3 < 9 < 8; 結果為n = 1;(計算机先判斷左邊3<9為真1,再判断1<8為真,所以結果為1);

3、数组特殊赋值: int array[50] = { [40] = 100 };  將數組的第40個數賦值為100
数组个数計算:int count  = sizeof(array) / sizeof(int); 通过数组大小除以數組類型大小(或單個元素的大小)。函數strlen(array),求數組或字符串的長度更方便(必須引入頭文件string.h); 
4、产生随机数 rand(),srand();必須引入頭文件stdlib.h;
5、所有指针类型均为8个字节

  int *类型的指針,+1操作,相当于加4

  double *类型的指针,+1操作,相当于加上8

  char *类型指针,+1操作,相当于加上1

6、结构体占据的空间大小:结构体中最大成员变量占用的字节数的整数倍,内存对齐

7、#include 编译预处理指令:可以将其他文件的内容拷贝过来。 < >导入系统头文件," "导入自定义的头文件。

8、C语言编译器有:gcc和clang两种编译器

最后附上一个面试易考题源代码和效果如下:

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        int SIZE = 7;        int array[SIZE][SIZE];        int orient = 0;        for (int i = 1,j = 0,k = 0; i <= SIZE * SIZE; i++) {            array[j][k] = i;                        if (j + k == SIZE - 1) {                if (j > k) {                    orient = 1;                }                else{                    orient = 2;                }            }            else if(k == j && k >= SIZE / 2){                    orient = 3;                }            else if((j == k - 1) && k <=SIZE / 2){                    orient = 0;                }                switch (orient) {                    case 0:j++;break;                    case 1:k++;break;                    case 2:k--;break;                    case 3:j--;break;                    default: break;                }            }            for (int i = 0; i < SIZE; i++) {                   for (int j = 0; j < SIZE; j++) {                if (array[i][j] < 10) {                printf("0%d ",array[i][j]);                }                else{                    printf("%d ",array[i][j]);                }            }            printf("\n");        }    }    return 0;}



0 0
原创粉丝点击