#include <stdio.h>
int main() {
int a[2][4] = {{1, 2, 4, 8},{ 16, 32, 64, 128}};
int (*p)[4] = a;
printf("%d\n", *(a[1]+0));
printf("%d\n", *(*(&a[1])+0));
printf("%d\n", *(*(p+1)+0));//(p+1)为&a[1]
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void x (int* arg) {
*arg=1;
}
int main() {
int *p=(int *)malloc(sizeof(int));
x(p);
printf("%d",*p);
}
#include <stdio.h>
#include <stdlib.h>
void x (int* arg) {
arg=(int *)malloc(sizeof(int));
*arg=1;
}
int main() {
int *p=NULL;
x(p);
printf("%d",*p);//段错误
}
/*输出为8个-,为什么不是6个呢。。。*/
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
int i;
for(i=0; i<2; i++)
{
fork(); //fork()后子进程将printf缓存复制但只有第二层fork()时才发生缓存复制
printf("-");
}
return 0;
}