char const * cp; char a='a';
cp=&a; //正常语法 *cp=a; //错误语法,因为其指向的值是一个常量
char * const cp; char a='a';
cp=&a; //错误语法,因为其地址为是一个常量 *cp=a; //正确,地址所指向的内容是一个普通字符
char *arr[3] = {"1","123","345"};
printf("arr0%c\n",*arr[0]);
printf("arr1%s\n",arr[1]);
char (*p)[3]; //申明时不能同时初始化
char arr[3] = {'1','4','7'};
p=&arr; //指向数组的首地址,同时指针的类型是char * [3] 类型的,即加1操作后为sizeof(char [3])三个字节数
printf("%c\n",(*p)[0]); //先取arr的首地址,再根据这个地址取数组内容
printf("%c\n",(*p)[1]);
printf("%c\n",(*p)[2]);
printf("%c\n",*((char*)p+0)); //先转换为char指针,再取值
printf("%c\n",*((char*)p+1));
printf("%c\n",*((char*)p+2));
printf("%c\n",((char*)p)[0]); //先转换为char指针,再取数组的值,和第一个类似
printf("%c\n",((char*)p)[1]);
printf("%c\n",((char*)p)[2]);
char (*func)(void); //定义函数指针
char test(void)
{
return 'A';
}
func = test; //初始化赋值
printf("test address: %p\n",test);
printf("func address: %p\n",func);
char ch = func(); //调用
printf("%c\n", ch);
char *func(void);
char *func(void) {
char *str = "test";
return str;
}
void main() {
char *test = func();
printf("%s\n",test);
}
int *a,*b; a=new int(10); //给指针赋值 b=new int(20); //a=0x00030828,b=0x00030840 a=(int*)(b-a); //a=0x00000006 b=(int*)(b-int(a)); //b=0x00030828 a=(int*)(b+int(a)); //a=0x00030840
int a = 4; int b = 5; *(((char*)&a)+1) = *((char*)&b); *((char*)&b)=*((char*)&a); *((char*)&a)=*(((char*)&a)+1); *(((char*)&a)+1)=0;
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有