随笔分类 - C
C和汇编语言,有助于深入理解计算机。
摘要:定义一般基本变量时,内存地址:按照定义变量的顺序从高到低。结构成员初始化后, 其内存地址的规律是:从低位到高位连续排列。并且类似于数组,它的第一个成员的内存地址也就是这个结构变量的内存位置。(但是你并不能通过这个地址调取这个成员的值,必须使用类似: (*p).member 的形式才可以。因为.的优先...
阅读全文
摘要:*p++, 这里的p是表示指针,而++运算优先于*(当然不是乘号,仅仅指的是指针的运算符),首先给p增加一个1(所指向的地址移动到下一个'变量'的起始点),相当于 p[n] 变成了 p[n+1] 。然后是*, 即提取这个指针所指位置的变量值。即 先移动指针再提取值。对比两种遍历:#include i...
阅读全文
摘要:1. int * const p;意思是这个p是个const,不能执行p++这样的操作等。但是可以改变*p的值。其实这个东西就是数组的本质。你不能改变数组的起始位置。因为它是一个const。但是你可以改变数组第一个元素的值,因为它相当于*p。举个例子:int a[], b[];a = b;这个就不能...
阅读全文
摘要:关于数组和内存地址先看代码:#include int main(void){ int i=1; int j=2; int k=3; printf("i: %p\nj: %p\nk: %p\n", &i, &j, &k); int *p = &k; p...
阅读全文
摘要:利用&查看内存地址 1 #include 2 3 int main(void) 4 { 5 int list[3]={1,1,1}; 6 for (int i=0; i<3; i++) 7 { 8 printf("list[%d]'s address: %...
阅读全文
摘要:1 #include 2 3 int main(void) 4 { 5 const int len = 100; 6 int prime[len]; 7 for (int i=0; i<len; i++) 8 prime[i] = 1; // 1 标记这...
阅读全文
摘要:1. 字符数组 1 #include 2 3 void concat(char result[], const char str1[], int n1, 4 const char str2[], int n2) 5 { 6 int i, j; 7 //...
阅读全文

浙公网安备 33010602011771号