C语言基础
进击的小豪
这个作者很懒,什么都没留下…
展开
-
二维数组
在内存中还是一维数组,以每一行为一个元素a[i][j]编译器解析为*(*(a + i) + j)int a[3][4]的a[i][j]在内存中的地址a+4*i+j1、array[0]与array都是数组首地址,两者指向对象不同array + 1:指向第二行array[0] + 1:指向第一行第二个元素int *p;p = array[0];2、数组名作地址表示其中元素*array <=> array[0]array[i][j]:1) 用二维数组名:*(*(array原创 2021-01-21 22:42:46 · 218 阅读 · 0 评论 -
sizeof用法注意
sizeofsizeof(数组名):返回数组所有元素占有的内存空间字节数int count[26];memset(count, 0, sizeof(count));或者memset(count, 0, sizeof(int) * 26);sizeof(指针):返回计算机系统的地址字节数,如果是32位系统,返回4;16位系统,返回2int* p = count;sizeof(int); //4...原创 2021-01-20 21:28:18 · 179 阅读 · 0 评论 -
宏定义:取最大值MAX&MIN
C语言宏定义#define max(a,b) a>b?a:b 有什么隐患?据说要这样写:#define max(a,b) ((a)>(b)?(a):(b)),如果不加括号有什么不一样吗?因为宏定义是在预编译阶段把宏的内容拷贝的源代码的相应位置如果#define max(a,b) a>b?a:b这样写的话那么如下表达式 max(a,b)+1就展开为a>b?a:b+1冒号后面就是b+1了,自然和当初愿望不一样,算完max再加一违背了所以要加上括号。...原创 2020-12-06 16:32:42 · 3066 阅读 · 0 评论